C语言中union的用法,下面的题目答案为什么是2?

2024-11-16 00:25:09
推荐回答(1个)
回答1:

这个问题的结果和int的长度以及CPU字节序都有关。在不同的机器和编译器上,结果可能变化。
以常见的int4字节,小端序为例,776用4字节16进制表示为0x00000308,由于是小端序,内存中实际的保存方式是08 03 00 00,其中前两个字节08和03分别是数组y的第一个和第二个元素,因此a.y[1]的值是03,用十进制表示就是3。