执行下列程序的输出结果是( )。
main()
union
int b;
char c[2];
y;
y.b=0x4142;
printf("%c,%c",y.c[1],y.c[0]);
A.65,66
B.a,b
C.B,A
D.A,B
参考答案:D
解析: 共用体中的成员是共享同一内存区域的,另外,整数在内存中的表示是低字节在前高字节在后,所以给y.b赋值0x4142,等价于给y.c[0]赋值0x42(字符B),y.c[1]赋值Ox41(字符A)。所以本题输出的结果是A,B。故应该选择D。