联合体也叫共用体,是一种特殊的自定义类型。
union 是联合体的关键字。
这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合也叫共用体)。
联合体语法形式:
(书写的格式和结构体类似)
union ud
{
int a;
char b;
};
联合体的特点:联合体成员都是使用同一块空间,每次使用空间只能选一个成员使用,不能同时使用。
比如:a 成员使用空间,那 b 成员就不能使用,反之 b 成员使用空间,那 a 成员就不能使用。
例如:
下面测试联合体的大小问题。
#include
using namespace std;
union ud
{
int a;
char b;
};
int main()
{
union ud u;
printf("%d\n",sizeof(u));
}
测试结果:4
结果为什么是 4 呢?
联合的成员是共用同一块内存空间的,这样一个联合变量的大小至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。
那么联合体的成员大家的地址都是一样的。
因为二者共用一个内存的话,二者指针指向的位置必须是一样的这样才能找到相应的空间。
以上就是关于联合体的全部内容,你学会了吗?数据结构已经基本讲完,下期我会开启一个全新的专题——预处理器,会为大家讲解宏定义、#undef 、条件编译等预处理器指令。