问题
单项选择题
已知字符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
答案
参考答案:B
解析: 根据共用体的定义可知:共用体z的成员c和成员i[4]是共用着同一段内存空间,所以,当程序给z.i[0]赋值后,实际上共用体成员c的值也确定了,为0x39,所以在以字符方式打印时,打印结果应是ASCII码等于0x39的字符,即是9。