共用体第二次赋值时赋值为零了,会出现什么情况?

img


以这个为例子,在对共用体第二次赋值时,那么共用体的值不就是零了吗,为啥打印i的值,会是13呢?

不是赋值清零了,共用体共有两个元素i和a[2],其中i是一个int型,默认是占32位共四个字节的空间;a[2]的数组每个元素占用8位,一起占用2个字节的数据!
现在a[0]=13,a[1]=0,对应i的值应该只有低八位有数据,其他都是零,因此十进制数也是13。
希望你能理解,如有疑问可以私信!



结果是13,因为ch[0] = 13,整型的存储是低字节在前,高字节在后,所以ch[0]=13就是低字节是13,然后高字节赋值为0,整个int类型值就是13