谁能和我说说这个C程序是怎么执行的? 我运行后得到34但不懂

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:02:26
以知字符0的ASCII码为十六进制的30,下面程序的输出结果是

main()
{ union { unsigned char c;
unsigned int i[4];
} z;
z.i[0]=0x1234;
z.i[1]=0x5678;
printf("%x\n",z.c); }



结果34

共用型:数组i和变量c占用相同的内存
实际i[0]低字节与c占用相同的内存,都为0x34

共用体就是所有成员共用同一块内存空间,比如这个z,就只占了8个字节空间,其中c和z[0]的低字节共同1个字节