9.9 C++共用体

C++共用体概述在C++中,会须要使几种不一样类型的变量存放到同一段内存单元中,好比,将一个整型变量、一个字符型变量、一个双精度型变量放在同一个地址开始的内存单元中,这3个变量在内存中占的字节数不一样,但都从同一地址开始存放,这种使几个不一样的变量共占同一段内存的结构,称为共用体类型的结构。声明共用体类型的通常形式为 union 共用体类型名 {成员表列 };定义共用体变量的通常形式为 共用体类型名 共用体变量名;C++容许在声明共用体类型的同时定义共用体变量,也可没有共用体类型名而直接定义共用体变量。//有共用体类型名
union data
{
  int temp;
  char charcter;
  double str;
}union_1,union_2;

//无共用体类型名
union 
{
  int temp;
  char charcter;
  double str;
}union_1,union_2;C++结构体变量所占内存长度是各成员占的内存长度之和,每一个成员分别占有其 本身的内存单元,共用体变量所占的内存长度等于 最长的成员的长度。  C++共用体变量的访问C++不能引用共用体变量,而只能引用共用体变量中的成员。union_1.temp;//引用共用体变量中的整型成员temp
union_1.character;//引用共用体变量中的字符型成员character
union_1.str;//引用共用体变量中的双精度成员strC++使用共用体变量的目的是但愿用同一个内存段存放几种不一样类型的数据,在每一瞬时只能存放其中一种,而不是同时存放几种。   C++共用体类型的特色
  • 共用体变量的地址和它的各成员的地址都是同 一地址。ide

  • 不能对共用体变量名赋值。函数

  • 不能企图引用变量 名来获得一个值。内存

  • 不能在定义共用体变量时对它初始化。it

  • 不能用共用体变量名做为函数参数。 io

C++可以访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原有的成员就失去做用。 
相关文章
相关标签/搜索