联合体

联合体也称为共用体,是一种数据格式,能够储存不同类型的数据,但同一时间只能储存其中的一种类型数据。

union Data{
    int a;
    double b;
    char c[100];
};

Data data; 定义了一种联合体类型的变量 data,对于多种格式的数据项(但不会同时使用)时,共用体可以节省空间。

Data data;
data.a = 10;
data.b = 1.23;
strcpy(data.c, "hello cat.");

cout << sizeof(data) << endl;
cout << data.a << endl;
cout << data.b << endl;
cout << data.c << endl;

输出:
104
1819043176
1.34452e+161
hello cat.
  • 联合体成员变量同时使用,造成了数据 a 和 b 的数值不准确,联合体成员变量必须单独使用。
  • 数据大小以最大的 char c[100] 为准,对齐字节为 8。
data.a = 10;
cout << data.a << endl;

data.b = 1.23;
cout << data.b << endl;

strcpy(data.c, "hello cat.");
cout << data.c << endl;

输出:
10
1.23
hello cat.

枚举类型

枚举类型的定义:枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

定义格式:

enum <类型名> {<枚举常量表>};

格式说明:

  • 关键字 enum —— 指明其后的标识符是一个枚举类型的名字。
  • 枚举常量表 —— 由枚举常量构成。枚举常量或称枚举成员,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以 , 间隔,且必须各不相同。
#include <iostream>
using namespace std;

enum Color_Set{
    RED,
    GREEN,
    BLUE,
    WHITE,
    PURPLE
};

int main() {

    Color_Set c1 = RED, c2 = WHITE;

    cout << c1 << endl;
    cout << c2 << endl;

    return 0;
}

输出:
0
3
**枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,默认状态下,这个整数就是所列举元素的序号,序号从0开始。**

可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。

enum Color_Set{
    RED = 2,
    GREEN = 3,
    BLUE,
    WHITE,
    PURPLE
};

输出:
2
5
  • 枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。
  • 枚举常量只能以标识符形式表示,而不能是整型、字符型等常量。
  • 枚举变量占用内存的大小与整型数相同
  • 枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值。
  • 定义枚举类型的主要目的是:增加程序的可读性。

results matching ""

    No results matching ""