定义如下的联合体类型和变量
union
{
unsigned char c[2];
unsigned int i;
}m;
m.i= ~0xFF;
则在little-endian字节序的机器上m.c[0], m.c[1]分别为 ( )
A) 0,OxFF
B) 0xFF,0
C) 0,0
D) 0xFF,0xFF
正确答案: | A |
答案解析: | 本题考察字节序、联合体union和位取反~。答案是 A。 联合体m的两个成员变量c和i共用4个字节的存储空间,其中c占用低地址端的2个字节。 m.i=~0xFF,即m.i=0xFFFFFF00。 在小端字节序的机器上,m.i按字节存储方式是0x00 0xFF 0xFF 0xFF(地址由低到高),即m.c[0]为0,m.c[1]为0xFF |