C语言,union型 小例子不懂

2025-01-04 13:05:55
推荐回答(1个)
回答1:

问题在你反复赋值上,union一次只能给一种类型赋值,按最大类型分配空间,char是一个字节,int是4个字节,所以分配的是4个字节,内容是随机的,
你第一次赋值给char,只更新了低位1个字节的内容,这个时候你再读取i,高3个字节内容是不确定的,
第2次i赋值了97,高三个字节被清0了,
第三次的值来自于第2次清0了高三个字节