问题 单项选择题

有以下程序main(){union{char ch[2];int d;}S;S.d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[1]);} 在16位编译系统上,程序执行后的输出结果是【 】。

A.21,43

B.43,21

C.43

D.21,00

答案

参考答案:A

解析:因为联合的两个变量共用一段内存,ch[0]占用低字节,ch[1]占用高字节,所以在读它们的时候还是原来的数据,没发生改变。

单项选择题
单项选择题