定义:
使用覆盖技术,几个变量相互覆盖,从而使几个不同变量共占同一段内存的结构,成为共同体类型的结构。
共同体的定义类似结构体,不过共同体的所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能使用其中的一个成员变量。
声明共用体的一般形式为:
union 共用体类型名
{
成员列表
};
定义共用体变量的一般形式为:
共用体类型名 共用体变量名;
例如:
union data{
int i;
char ch;
double d;
};
data a,b,c;
或者
union{
int i;
char ch;
double d;
};
data a,b,c;
结构体变量所占长度是各成员占的内存长度之和。每个成员分别占有自己的内存单元。共用体变量所占的内存长度等于最长的成员的长度。
共用体的使用
1.不能应用共用体变量,而只能引用共用体变量中的成员。
例如:
cout<<a.i;
cout<<a.ch;
2.使用共用体变量的目的是希望通过统一内存段存放几种不同类型的数据。
但是要注意,每一瞬间只能存放一种,而不是存放集中。并且,如果对新的成员变量的话,原来的成员变量的值就