陣列初始化
陣列只是特定型別變數的順序儲存器位置塊。陣列的分配方式與普通變數相同,但名稱 []
附加方括號,其中包含適合陣列記憶體的元素數。
下面的陣列示例使用 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