数组初始化
数组只是特定类型变量的顺序存储器位置块。数组的分配方式与普通变量相同,但名称 []
附加方括号,其中包含适合数组内存的元素数。
下面的数组示例使用 typ int
,变量名 arrayOfInts
,以及数组有空格的元素 [5]
的数量:
int arrayOfInts[5];
可以像这样同时声明和初始化数组
int arrayOfInts[5] = {10, 20, 30, 40, 50};
通过列出其所有成员来初始化数组时,不必在方括号内包含元素数。它将由编译器自动计算。在以下示例中,它是 5:
int arrayOfInts[] = {10, 20, 30, 40, 50};
在分配更多空间的同时,也可以仅初始化第一个元素。在这种情况下,必须在括号中定义长度。以下将使用部分初始化分配长度为 5 的数组,编译器使用元素类型的标准值初始化所有剩余元素,在本例中为零。
int arrayOfInts[5] = {10,20}; // means 10, 20, 0, 0, 0
可以以相同的方式初始化其他基本数据类型的数组。
char arrayOfChars[5]; // declare the array and allocate the memory, don't initialize
char arrayOfChars[5] = { 'a', 'b', 'c', 'd', 'e' } ; //declare and initialize
double arrayOfDoubles[5] = {1.14159, 2.14159, 3.14159, 4.14159, 5.14159};
string arrayOfStrings[5] = { "C++", "is", "super", "duper", "great!"};
同样重要的是要注意,当访问数组元素时,数组的元素索引(或位置)从 0 开始。
int array[5] = { 10/*Element no.0*/, 20/*Element no.1*/, 30, 40, 50/*Element no.4*/};
std::cout << array[4]; //outputs 50
std::cout << array[0]; //outputs 10