和你用的平台也有关系,比如说吧,在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'