搜索

C语言联合体问题,为什么输出267啊,求高手解答,谢谢 啊!!!

发布网友 发布时间: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
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top