在C++里还有许多其他类型使我们暂时还没有提到的。除了对象外,C++中最重要的数据类型已经一一带来和大家见过面了。(对象将在下一节开始介绍)

  到目前为止,我们已经见过了整数、实数、字符、字符串、数组、指针和结构。今后我们还会讨论一种优于数组的向量(vector)类型。本节,我们介绍几个非主流的类型,第一个是:联合(union)。

 

联合

  联合与结构有很多相似之处,联合也可以容纳多种不同类型的值,但是它每次只能存储这些值中的某一个。
  例如:我们要定义一个变量来存放某种密码,我们可以选择是你女朋友的生日、身份证最后4位数字或者你养的宠物的名字等等。
  联合类型将是一个不错的选择>>>

union mima 
{
    unsigned long birthday;
    unsigned short ssn;
    char* pet;
}

  定义了这个联合类型之后,就可以像下面这样创建一个该类型的变量了:
    mima mima_1;

  再接下来,我们可以像对结构成员进行赋值那样对联合里的成员进行赋值,使用同样的语法:
    mima_1.birthday=19881301;

  上边这条语句是将值19881301存入mima_1联合的birthday里边。如果我们再执行下边语句:
    mima_1.pet="Chaozai";

  这个联合将把“Chaozai"存入mima_1联合的pet 成员,并丢弃birthday成员里的值。

//举例
#include <iostream>

union mima
{
    unsigned long    birthday;
    unsigned short  ssn;
    char*    pet;
};

int main()
{
    mima mima_1;
    
    mima_1.birthday = 19881301;
    std::cout << mima_1.birthday << "\n";
    
    mima_1.pet = "Chaozai";
    std::cout << mima_1.pet << "\n";
    std::cout << mima_1.birthday << "\n";//输出的是mima_1.pet 的地址
    
    return 0;
}
19881301
Chaozai
4464642
请按任意键继续. . .
View Code

相关文章:

  • 2021-07-11
  • 2021-09-23
  • 2021-05-16
  • 2022-12-23
  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
猜你喜欢
  • 2021-09-28
  • 2021-06-30
  • 2022-01-11
  • 2021-05-11
  • 2022-12-23
  • 2021-09-22
  • 2021-11-30
相关资源
相似解决方案