联合体语法

阅读量: 136 编辑

联合体是一种特殊的数据结构,它允许你在相同的内存位置存储不同的数据类型。

与结构体不同,联合体中的成员共享相同的内存位置,只能同时存储其中一个成员的值。

这意味着联合体的大小等于最大成员的大小。

一、联合体语法

union 联合体名称 {
    member1_type member1_name;
    member2_type member2_name;
    // 更多成员
};

二、联合体的特性

  • 内存共享:联合体的不同成员共享相同的内存位置。这意味着在任何给定时刻,联合体中只能存储一个成员的值。

  • 大小等于最大成员:联合体的大小等于其中最大成员的大小。这是因为联合体必须能够容纳最大的成员。可以用 sizeof 查看。sizeof(union)

  • 访问成员:通过点语法.访问其成员,存储在联合体中的当前成员才是有效的。

  • 使用场景:联合体通常用于需要在不同数据类型之间切换或共享内存的情况。

三、代码案例

#include <iostream>
using namespace std;

union MyUnion{
  int iValue;
  double dValue;
  char cValue;
};

int main() {
  MyUnion data;
  data.iValue = 100;
  cout << data.iValue << endl;
  
  data.dValue = 100;
  cout << data.iValue << endl; //0,因为联合体中只能存储一个成员的值
  cout << data.dValue << endl;
  
  cout << sizeof(data) << endl; //double 是8个字节
  return 0;
}
爱码岛编程公众号
微信扫码关注
爱码岛编程小程序
微信扫码打开
苏ICP备13052010号
©2023 南京匠成信息科技有限公司