C++入门教程(十、联合体)

前面教程汇总

第一讲

第二讲

第三讲

第四讲

第五讲

第六讲

第七讲

第八讲

第九讲

联合体(共用体)union

联合体也叫共用体,是一种特殊的自定义类型。 union 是联合体的关键字。 这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合也叫共用体)。

联合体语法形式: (书写的格式和结构体类似)

union ud
{
          
   
	int a;
	char b;
};

联合体的特点

联合体的特点:联合体成员都是使用同一块空间,每次使用空间只能选一个成员使用,不能同时使用。

比如:a 成员使用空间,那 b 成员就不能使用,反之 b 成员使用空间,那 a 成员就不能使用。

例如: 下面测试联合体的大小问题。

#include <cstdio>
using namespace std;

union ud
{
          
   
   int a;
   char b;
};
int main()
{
          
   
   union ud u;
   printf("%d
",sizeof(u));
}

测试结果:4

结果为什么是 4 呢? 联合的成员是共用同一块内存空间的,这样一个联合变量的大小至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。

那么联合体的成员大家的地址都是一样的。 因为二者共用一个内存的话,二者指针指向的位置必须是一样的这样才能找到相应的空间。

以上就是关于联合体的全部内容,你学会了吗?数据结构已经基本讲完,下期我会开启一个全新的专题——预处理器,会为大家讲解宏定义、#undef 、条件编译等预处理器指令。

经验分享 程序员 微信小程序 职场和发展