key这个联合的大小是:4个字节
key.i= 65*256 + 66;
即:00000000,00000000,01000001,10000010
而ch[2]是两个字节,所以,ch[0]就是010000010 ,对应的字符就是"B",cha[1]就是01000001,对应的字符就是"A"
联合体成员共用内存。
整型占4字节,char占2字节。
整型存储时低八位在前高八位在后,这样ch[0]读取到的是低八位,转换成十进制即66(字符B),ch[1]读取到的是高八位,转换成十进制即65(字符A)
共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。
你往key.i中写65*256+66,就是16706(十进制)。然后换成2进制就是“100 0001 0100 0010”。分成char [2] 就是 100 0001 和 0100 0010(二进制)。
100 0001 就是Ascii的A。100 0010 就是Ascii的B。