【C++ 筆記】陣列(Array) - part 8
【C++ 筆記】陣列(Array) - part 8
很感謝你點進來這篇文章。
你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧!
陣列(Array)
陣列(Array),又稱數組,在 Python 中,此種類似的資料結構稱為列表(List),是將一組資料儲存在記憶體的集合。
陣列是一種集合,在 C++ 中只能儲存固定資料型態的元素於陣列中。
在此之前,我們需要了解陣列(Array)、元素(Element)、索引(Index)、資料型態(Data Type)之間的關係。

Image Source:https://www.geeksforgeeks.org/cpp-arrays/
以上是陣列的圖示,所謂的元素就像是數列裡面的各個數字一樣,如:{1,2,3,4,5,6},1~6 即為元素。
所謂的索引(Index),就是每個元素的位置,C++ 的陣列索引以 0 為開頭,不是 1 唷。
以上圖而言,元素 2 的索引就是 0,它所在的位置就稱為 0。
至於資料型態,陣列不需要為每個元素加上 int、float 等等,只需要在陣列名稱前加上即可,語法如下:
1 | type arrayName [ arraySize ]; |
type:資料型態
arraysize:指定陣列大小,必須是要 > 0 的整數常數。
具體而言,正常的宣告如下:
1 | int a[10]; |
這是整數型態的陣列 a,大小能夠塞 10 個元素進去,索引為 0 ~ 9。
初始化陣列
1 | int a[10] = {1,2,3,4,5,6,7,8,9,10}; |
以上定義了一個陣列,並且做出初始化的動作。
那我們也可以不用指定 arraysize,如下:
1 | int a[] = {1,2,3,4,5,6,7,8,9,10}; |
則 C++ 會自動偵測裡面的元素個數,並且制定大小為 10,同上式。
我們也可以為陣列指定值,如下:
1 | a[0] = 2; // 索引 0 的元素被改成2 |
存取陣列
我們要取得陣列裡面的元素,則如下所示:
1 | a[0]; |
這樣就取得了 a 陣列中,索引 0 的元素了。
所以格式是:array[index];
接下來,讓我們練習吧!
1 |
|
輸出結果:
1 | 陣列中的元素為: |
多維陣列(Multidimesional Arrays)
語法:
1 | type name[size1][size2]...[sizeN]; |
多維陣列即陣列裡面還有一個陣列,在那一個陣列裡面,還有更多的陣列,就像永無止盡的盡頭XD。
最簡單的形式是二維陣列:
1 | int a[10][2]; |
二維陣列(Two dimensional Arrays)
二維陣列可以拿來類比成一個平面(x、y軸),也是一個表格。

Image Source:https://www.geeksforgeeks.org/multidimensional-arrays-in-c/
通常我們都會將二維陣列的形式喻成一個表格的形式,會有欄(C:Columns)、排(Rows)。
一維陣列是一條直線,就如同 1R:1, 2, 3, 4, 5。
二維陣列就是新增了欄位(C),向上、向下延伸陣列出來。
寫成程式碼如下:
1 | int a[3][4] = { |
這是一個 3 * 4 的二維陣列,寫法如同以下:
1 | int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11}; |
如果要存取二維陣列,如同一般的存取方法:
1 | int val = a[2][3]; // 例 |
以下是一範例:
1 |
|
輸出結果:
1 | 二維陣列的內容是: |
總結
陣列的定義
陣列是一種資料結構,用於儲存固定數量之相同資料型態的元素。每個元素都有一個索引,C++中的索引從 0 開始,索引(index)意即元素所在位置。陣列的基本語法為:
1 | type arrayName[arraySize]; |
例如,int a[10]; 定義了一個可以儲存 10 個整數的陣列。
陣列的初始化與存取
陣列可以在宣告時初始化,例如:
1 | int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; |
也可以不指定大小,由編譯器自動推斷。
存取陣列元素時需要使用索引:例如 a[0]; 取得第一個元素。
多維陣列
語法:
1 | type name[size1][size2]; |
二維陣列可以視為表格,並且可以使用雙重迴圈來存取和運算其元素。
參考資料
Multidimensional Arrays in C - 2D and 3D Arrays - GeeksforGeeks


