Last Updated on 2021-04-29 by Clay
陣列(Array)是一種資料儲存的格式,在硬體中以連續記憶體空間來儲存資料;也就是說,每個元素之間的記憶體位置是相鄰的。
而在 C 語言當中,我們可以宣告一個變數代表整個陣列。例如 X[10]
這樣的型態便代表著有 10 筆資料儲存在 X 陣列當中,編號則是從 0 到 9。
宣告陣列
dataType arrayName[arraySize]
在宣告陣列的時候,我們可以順帶初始化陣列的值。(當然,不要初始化也是可以的。)
而除了一維陣列之外,我們也可以宣告二維、三維 ….. 到 N 維陣列為止。
#include <stdio.h> int main() { // Init int x[3] = {1, 2, 3}; int y[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int z[] = {1, 2, 3, 4, 5, 6, 7, 8}; return 0; }
其中 z 陣列的長度則取決於後方宣告的元素個數。這也是一種常見的宣告方法。
印出陣列內的值
要印出陣列內的值,我們需要使用 sizeof()
函式來計算陣列的長度。
之所以要取得陣列長度,是因為除了我們自己宣告的陣列外,有時我們也可能取得未知長度的陣列,比方說從外部函式庫回傳的陣列值。這時若要使用 for 迴圈逐步印出陣列值,則需要知道陣列長度。
#include <stdio.h> int main() { // Init int x[] = {1, 2, 3, 4, 5, 6, 7, 8}; // Print x array for (int i=0; i<(sizeof(x)/sizeof(x[0])); ++i) { printf("%d\n", x[i]); } return 0; }
Output:
1
2
3
4
5
6
7
8
References
- https://stackoverflow.com/questions/37538/how-do-i-determine-the-size-of-my-array-in-c
- https://www.programiz.com/c-programming/c-arrays