有以下程序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]占用高字节,所以在读它们的时候还是原来的数据,没发生改变。
有以下程序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]占用高字节,所以在读它们的时候还是原来的数据,没发生改变。