一维数组
数组声明
目的是在运行前分配内存空间,编译时要确定数组的大小。
类型 标识符[表达式]
- 表达式必须是整数
- 表达式可以是常量,不能是变量,表达式必须有确定的值,可以是常量运算表达式
- 声明后元素是随机值
数组定义和初始化
类型 标识符[表达式可以省略] = {常量值表}
- 按照下标顺序一个一个的对元素初始化
- 常量值表的常数可以小于等于数组元素个数,但是不能大于
- 常量值表给定常数不足,其余元素初始化为默认值
- 静态数组定义是不必初始化,元素都初始化为默认值
- 借助初始化值表,表达式可以省略,但是没有初始化值表则不可省略
- 经过测试,初始化值表中可以有变量,但是表达式不可是变量及其表达式
二维数组
数组说明
类型 标识符[表达式1][表达式2]
- 两个表达式的要求同一维数组
- 元素在内存中以高维优先的方式存放
数组的定义和初始化
类型 标识符[表达式1可省略][表达式2不可省略] = {初始值表}
- 初始值表内可以是多个低维的初始值表
- 如果初始值表是多个低维的初始值表,每个低维的初始值表内元素不用写全,用默认值
- 初始值表可以直接列举所有元素
- 利用初始值表可以省略最高维度长度说明,根据初始值表判断,但是不可省略较低维度的长度说明
二维数组举例
int array1[2][3] = {{1,2,3},{4,5,6}};
int array2[2][3] = {{1,2},{3}};
int array3[2][3] = {1,2,3,4,5,6};
int array4[][3] = {1,2,3,4,5,6};
int array5[][3] = {{1,2},{3}};
字符数组
字符数组的定义和初始化
C++ 中以 ‘\0’ 表示一个字符串的结束。
逐个赋值
char 标识符[长度表达式可以省略] = {'a','b','c',...}
- 根据数组初始化统一要求,初始值表的个数不要大于长度
- 如果初始值表的个数小于长度,没有赋值的元素会被赋值为初始化值 ‘\0’
- 如果初始值表的个数等于长度,不会补 ‘\0’
- 长度表达式是可以省略的,此时如果初始值表中没有 ‘\0’,会自动补 ‘\0’
串常量初始化
char 标识符[长度表达式可以省略] = "...."
- C++ 对串常量自动添加结束标志 ‘\0’