发布网友 发布时间:2024-10-24 16:44
共2个回答
热心网友 时间:2024-11-04 16:42
因为是联合体,所以i 和x数组共享存储空间,因此从i 的角度来看,其低两个字节的内容就是这个11 和1,因此i 的值就是2的8次方乘1 + 11 = 267追问那为什么乘以2的8次方呢?
还有就是这里的‘1’和‘11’哪个在高位?哪个在低位?
追答按照Intel的cpu体系,高字节在后,而数组从下标低的开始向高位存放,所以11是低位,1是高位
为什么乘2 的8次方:因为1个字节就是二进制的8位
热心网友 时间:2024-11-04 16:42
共用体就是共用一段内存。
执行完
a.x[0]=11;
a.x[1]=1;
内存如下:
低八位 高八位
00001011 00000001
a.i=高八位×256+低八位=1×256+11=267