#include <iostream>
using namespace std;
union un
{
int i;
char c[4];
};
int main()
{
union un x;
x.c[0]='A';
x.c[1]='B';
x.c[2]='C';
x.c[3]='D';
cout<<x.i<<endl;
return 0;
}
#include <iostream>
using namespace std;
union un
{
int i;
char c[4];
};
int main()
{
un x;
x.c[0]='A';
x.c[1]='B';
x.c[2]='C';
x.c[3]='D';
cout<<x.c[2]<<endl;
return 0;
}
通过watch窗观察:
结构体的引入,用户可以方便定义新的数据类型,用成员变量来存储事物不同方面的特性。但是结构体每一个成员变量均需要占用一定的存储空间,与实际的要求存在一定的差距。引入的新的自定义数据类型共用体(union),很像结构体类型,有自己的成员变量,但是所有的成员变量占用同一段内存空间。对于共用体变量,在某一时间点上,只能存储其某一成员的信息。
结构体是由不同数据类型组成的一个结构,存储空间是所有成员需要的空间的总和,结构成员是同时存在的。而共同体则是不同数据类型共享一个存储空间,空间的大小是能容纳共同体成员中的最大者。共同体成员的值不可能同时存在。
@ Mayuko