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

2025-02-24 00:07:49
推荐回答(2个)
回答1:

因为是联合体,所以i 和x数组共享存储空间,因此从i 的角度来看,其低两个字节的内容就是这个11 和1,因此i 的值就是2的8次方乘1 + 11 = 267

回答2:

共用体就是共用一段内存。
执行完
a.x[0]=11;
a.x[1]=1;
内存如下:
低八位 高八位
00001011 00000001
a.i=高八位×256+低八位=1×256+11=267