共用体(union)是一种成员共享存储空间的结构体类型。
union 共用体类型名 {
成员列表
}
共用体内存长度是所有成员内存长度的最大值。
#include <iostream>
using namespace std;
int main()
{
//先声明共用体类型再定义共用体对象
union A {
int m, n;
char a, b;
};
union A a1, a2;
//同时声明共用体类型和定义共用体对象
union B {
int m, n;
char a, b;
} b1, b2;
//直接定义共用体对象
union {
int m, n;
char a, b;
} c1, c2;
union A x = {0x01020304};
cout << x.m << endl;
cout << x.n << endl;
cout << x.a << endl;
cout << x.b << endl;
return 0;
}
1. 修改一个成员会使其他成员发生改变,所有成员存储的总是最后一次修改的结果。
2. 所有成员的值是相同的,区别是不同的类型决定了使用这个值的全部或是部分。
3. 所有成员的起始地址是相同的,因此通常只按一个成员输入、初始化。