第四章 复合类型
4.1 数组
4.1.1 数组简介
数组(array)是一种数据格式,能够存储多个同类型的值。
声明数组的通用格式如下:
typeName arrayName[arraySize];
表达式arraySize指定数组的元素数目,它只能是以下三种情况之一:
1) 整型常数(如10,枚举值也可以);
2) const值
3) 常量表达式(如8 * sizeof(int))
注意:使用数组要注意下标的正确。编译器不会检查使用的下标是否有效。将一个值赋给不存在的元素,编译器不会指出错误,但是会隐藏着致命的结果。编写程序时要小心,使用有效的下标值。
4.1.2 数组的初始化规则
只有声明时才能对数据初始化,但是可用下标为每个元素分别赋值。
常规的初始化方法如下:
int array1[4] = { 1, 2, 3, 4 }; //常规初始化
大括号中提供的值可以少于数组元素的数目,这种情况下只对数组前面的元素赋值,其他元素被赋予0值,如下:
int array2[4] = { 1, 2 }; //值的数目少于元素数目
如果[]中没有给出数组元素的数目,编译器会计算元素的个数,这种情况多用于字符串的初始化,如下:
int array3[] = { 1, 2, 3, 4 }; //[]没有给出元素数目
C++11数组的初始化方式可以省略等号(=),如下:
int array4[4]{ 1, 2, 3, 4 }; //省略等号
大括号中也可以没有值,这时数组中全部元素都被赋0值,如下:
int array5[4] = {}; //大括号没有值
4.2 字符串
C风格的字符串是字符的数组,并且字符串以’ ’结束。
4.2.1 初始化字符串的方式
字符串是字符的数组,可以使用数组的初始化方式,如下:
char name1[6] = {'P','e','t','e','r','