解析里说i从低位到高位是9.3.8.3 我求的只有9 和8 3是哪来的?

img


解析里说i从低位到高位是9.3.8.3 我求的只有9 和8 3是哪来的?

你是不是不知道union关键字是干什么用的?
union声明一个结构,它里面的所有变量共享内存
当你给i赋值时,c也有值了,而且用i一样的内存
那么既然i[0]是0x39,占2个字节,那么一个字节里面是0x39,一个字节里面是0x00,这能理解吗
题目答案肯定是错的,出题人以为0x39里面的3和9各占一个字节,其实3和9在一个字节里,高字节里是00

因为是联合体,共享一段内存。对i的赋值,同时也是对K和c的赋值,三个变量共同指向一个四字节空间。赋值后这四个字节由低到高分别存储9,3,8,3。这里是解释内存存储请,至于c[0]则为9