一道C题...请求解答

来源:百度知道 编辑:UC知道 时间:2024/05/29 16:56:51
main()
{
union{char c,char i[4];}z;
z.i[0]=Ox39;z.i[1]=Ox36;
printf("%c\n",z.c);
}
答案是“9”

main()
{
union{char c,char i[4];}z;//这是个联合结构体,字符c和字符数组i占用相同的内存空间,即c和i[0]使用一个地址
z.i[0]=Ox39;z.i[1]=Ox36; //z.i[0]=0x39 相当于c也被赋值0x39
printf("%c\n",z.c); //0x39为字符9 的ASCII码 所以答案为9
}

union的所有成员都是little endian(小端)的字节序。按照这个方法去答题就可以了。