它和结构类型唯一不同的是 联合类型成员共享内存空间,以占用内存最大长度的成员空间作为整个联合类型的空间。。
但是像下边这样的情况。。
union Data
{
int a;
char b;
int c[4]
};
data的空间是4,分别给a,b赋值后,打印出来。。会发现a的值和所赋的不一样。。
如下图:
所以我弄不懂union用在什么情况下。。开发中用得多吗?
附代码以供测试
union Data { int a; char b; int c[4] }; int main() { union Data testData; testData.a=0x4533; printf("a=%x\n",testData.a); printf("a address=%p\n",&testData.a); testData.b=0x61; printf("b=%c\n",testData.b); printf("b address=%p\n",&testData.b); printf("a=%x\n",testData.a); system("pause"); }