引言
实际开发中,仅使用基础数据类型无法描述复杂的数据对象。C++ 提供构造数据类型(也叫自定义数据类型),这类类型由基础类型组合或用户定义,用于处理复杂数据,包含枚举、数组、指针、引用、结构和联合等。
1.1 枚举类型
1.1.1 枚举类型的定义
枚举类型的声明:
enum 枚举类型名 {枚举常量 1, 枚举常量 2, ..., 枚举常量 n};
注意:
- 枚举类型名以及枚举常量为标识符,遵循标识符的取名规则。
- 当未给各枚举常量指定值时,其值依次默认为 0、1、2...在定义枚举类型时,也可以使用赋值号另行指定枚举常量的值。
1.1.2 枚举类型的使用
- 枚举常量是常量,不是变量。
- 枚举常量值不是列举的字符串,其值为整数。
1.2 数组
数组是一组在内存中一次连续存放的、具有同一类型的数据变量所组成的集合体。
1.2.1 一维数组的定义与使用
- 一维数组的定义:
数据类型 数据名 [常量表达式];
注意:void 类型不能定义为数组。
一维数组所占内存大小计算公式:
n * sizeof(元素类型); 或 sizeof(数组名);
定义数组格式如下:
数据类型 数据名 [常量表达式];
- 一维数组初始化
数据类型 数组名 [常量表达式] = {初值 1, 初值 2, ..., 初值 n};
注意:初值个数小于等于数组的大小。
- 一维数组的存取 (下标从 0 开始)
数组名 [下标表达式];
- 数组的地址(数组名是一个地址常量,不能作为左值)
数组名 + 整型表达式;
1.2.2 二维数组的定义与使用
- 二维数组的定义
数据类型 数据名 [常量表达式 2][常量表达式 1];
或
typedef 数据类型 一维数组名 [常量表达式 1]; 一维数组名 二维数组名 [常量表达式 2];
二维数组占内存空间的计算公式:
sizeof(数组名); 或 m * sizeof(a[0]); 或 m * n * sizeof(数据类型);
- 二维数组初始化
数据类型 数据名 [常量表达式 2][常量表达式 1] = 初值表;
- 二维数组的存取
数组名 [行下标表达式][列下标表达式];
1.2.3 字符数组与字符串
- 用字符进行初始化
例如:char s1[]={'C','h','i','n','a'};
char s2[][4]={{'H','o','w'},{'a','r','e'},{'y','o','u'}};
- 用字符串进行初始化
char 数组名 [常量表达式] = {"字符串常量"};

