共用体(union)的定义类似结构体,且同样能够存储不同类型的数据。不过共同体的所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能存储其中的一个成员变量
由于共用体同一时刻只能存储一个值(覆盖技术),因此它必须有足够的空间来存储最大的成员。结构体变量所占长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元。共用体变量所占的内存长度等于最长的成员的长度。
共用体类型定义用关键字union标识,形式为:
union标识符
{
成员表
};
注意:定义公用体类型后的分号是必不可少的,否则会引起错误。
#include<iostream>
using namespace std;
int main()
{
union Date
{
int a;
char b;
};
Date c;
c.a=97;
cout<<c.a<<" "<<c.b<<endl;
c.b='b';
cout<<c.a<<" "<<c.b<<endl;
return 0;
}
//运行结果:
//97 a
//98 b