已知字符0的ASCII码为十六进制的30,现有程序如下: #include <stdio.h> main() { union{ unsigned char c; unsigned

admin2009-01-15  36

问题 已知字符0的ASCII码为十六进制的30,现有程序如下:    #include  <stdio.h>    main()    {  union{               unsigned char c;               unsigned int i[4];            }z;       z.i[0]=0x39;       z.i[1]=0x36;       printf("%c\n",z.c);    }    此程序的输出结果是(    )。

选项 A、6
B、9
C、0
D、3

答案2

解析 根据共用体的定义可知:共用体z的成员c和成员i[4]是共用着同一段内存空间,所以,当程序给z.i[0]赋值后,实际上共用体成员c的值也确定了,为0x39,所以在以字符方式打印时,打印结果应是ASCII码等于0x39的字符,即是9。
转载请注明原文地址:https://jikaoti.com/ti/1JK0FFFM
0

最新回复(0)