網頁

2022/7/19

C++ 宣告陣列 declare arrays

C++宣告陣列變數的方式如下。


Array(陣列)是一有順序相同型態元素(elements)的集合,每個元素在記憶體中佔有連續的儲存空間可各自被參照。

C++宣告陣列的語法為:type name[length]type為陣列元素的資料型態,例如intname為變數名稱,例如ages[length]為陣列長度,也就是元素的數量。

例如下面宣告一個int整數陣列變數ages長度為10,陣列元素未初始化則內容為0。

int ages[5];

以圖示表示。

           ┌───── length=5 ────┐

      ages ┌───┬───┬───┬───┬───┐
elements──►│ 0 │ 0 │ 0 │ 0 │ 0 │
           └───┴───┴───┴───┴───┘
   index───► 0   1   2   3   4

下面則在宣告陣列時初始化元素內容,元素個數不可超過陣列長度。

int ages[5] = {1, 2, 3, 4, 5};
     ┌───┬───┬───┬───┬───┐
ages │ 1 │ 2 │ 3 │ 4 │ 5 │
     └───┴───┴───┴───┴───┘
       0   1   2   3   4

若要取得元素值,用索引(index)取得指向的陣列元素。例如下面取得索引2的元素並分派到變數a

main.cpp

#include <iostream>
using namespace std;

int main() {
    int ages[5] = {1, 2, 3, 4, 5};
    int a = ages[2]; // 取得索引2的陣列元素
    
    cout << a << endl; // 3
    
    return 0;
}
     ┌───┬───┬───┬───┬───┐
ages │ 1 │ 2 │ 3 │ 4 │ 5 │
     └───┴───┴───┴───┴───┘
       0   1   2   3   4
               ▲
               │

若要修改元素內容,一樣用索引指向該元素,然後把新值分派給指向的元素。例如下面把值33分派給索引2的元素。

main.cpp

#include <iostream>
using namespace std;

int main() {
    int ages[5] = {1, 2, 3, 4, 5};
    ages[2] = 33; // 把值分派給索引2的陣列元素
    int a = ages[2];
    
    cout << a << endl; // 33
}
     ┌───┬───┬───┬───┬───┐
ages │ 1 │ 2 │ 33│ 4 │ 5 │
     └───┴───┴───┴───┴───┘
       0   1   2   3   4
               ▲
               │

使用for迴圈走訪陣列元素

main.cpp

#include <iostream>
using namespace std;

int main() {
    int ages[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < sizeof(ages)/sizeof(ages[0]); i++){
        cout << ages[i] << endl;
    }
    
    return 0;
}



沒有留言:

張貼留言