和你用的平台也有关系,比如说吧,在16位系统下面,char 1byte, int 2byte, long 4byte,
union {int a[2];
long b;
char c[4];
}s
所以在16位系统上,这个结构如下分布:
-------------------------------------------------------
字节: 0 1 2 3
------------------------------------------------------
a[0]低8位 a[0]高8位 a[1]低8位 a[1]高8位
c[0] c[1] c[2] c[3]
-----------------------------------------------------
(值) 0x39 0x00 0x38 0x00
-----------------------------------------------------
打印b的时候,就是0x00380039
打印c[0],你打印的是ascii码为0x39的那个字符:即字符'9'