程序如下:struct a
{ unsigned char c;
unsigned short int d;
};
union data
{
struct a e;
char k[4];
}b;
e.a.c=1; e.a.d=0x2222;
输出的b.k的十六进制形式为什么是01cc2222,而不是012222 呢?
e.b.c不是一个字节吗?
{ unsigned char c;
unsigned short int d;
};
union data
{
struct a e;
char k[4];
}b;
e.a.c=1; e.a.d=0x2222;
输出的b.k的十六进制形式为什么是01cc2222,而不是012222 呢?
e.b.c不是一个字节吗?
b的size是4
b.k输出4个字节,而赋值时只给了3个字节,"cc"为未初始化的不确定值