这个怎么算的,刚试着把ch[1]改了,结果就变了

img

长度2的char数组两字节,int也两字节,所以不需要对齐
a.ch[0]=13 a.ch[1]=0
其实就是

字节1字节2
0x0D0x00

所以a.i就是0x 00 0D还是13


显然,你要是改a.ch[1]=m 那么值就会变成m*256+13

我查了半天没查到上一题那种赋值方式..只找到个
Struct and union initialization - cppreference.com https://en.cppreference.com/w/c/language/struct_initialization
,里面写着不允许多赋值,但是跑又能跑起来..
这题感觉和和大尾端小尾端有关系啊,一个int4字节,一个char1字节,存在同一个地方,那修改char0和char1就相当于修改了int的某一个字节的信息?