执行下列程序的输出结果是( )。 main() { union { int b; char c[2]; } y; y.b=0x4142; printf("%c,%c",y.c[1],y.c[0]);

admin2010-01-10  38

问题 执行下列程序的输出结果是(  )。    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

答案8

解析 共用体中的成员是共享同一内存区域的,另外,整数在内存中的表示是低字节在前高字节在后,所以给y.b赋值0x4142,等价于给y.c[0]赋值0x42(字符B),y.c[1]赋值Ox41(字符A)。所以本题输出的结果是A,B。故应该选择D。
转载请注明原文地址:https://kaotiyun.com/show/9GWp777K
0

最新回复(0)