陣列是由一群具有相同名稱或者相同資料型態變數的順序集合,而因為整個陣列中的變數名稱都相同,所以我們需要用陣列的 index 去存取陣列中的變數。
陣列和變數的功能都是拿來儲存資料,但每一個變數只能儲存一項資料,而陣列是由一連串的主記憶體空間組合而成,所以可以同時連續儲存多項資料,也可以一次宣告多個變數,讓我們不用寫那麼多行程式碼來宣告多個變數,增加了程式的可讀性。
根據陣列格式的不同,可以把陣列分為:
陣列的表示方法如下:
dataType arrayName[arraySize]; //一維陣列
dataType arrayName[arraySize][arraySize]; //二維陣列
int score[30]; //沒有宣告初值的陣列
int arr[5] = {4, 5, 6, 7, 8}; //一併宣告初值、長度為五的陣列
int arr[] = {4, 5 ,6, 7, 8}; //讓電腦自動決定陣列長度
int arr[5] = {0}; //初始化,將所有元素設為0
陣列的圖示化:
如果我們的陣列寫成 int arr[5] = {4, 5, 6, 7, 8};
他的圖示化大概長這樣:
不管是幾維的陣列,C 語言都會分配一塊連續的記憶體空間處理。不同名稱陣列的記憶體空間可能不連續,但是在同一個陣列的記憶體空間必定連續。
例如:int a[10];
等同於分配 10*sizeof(int)
個 bytes
int a[5][10];
等同於分配 5*10*sizeof(int)
個 bytes
可是如果是呼叫函數傳遞參數時,如:
void fun(int x[]){
}
這裡的陣列 x[]
是沒有分配空間的,只傳遞陣列的開頭地址(指標)。
今天對於陣列有了基本認識,明天讓我們來看看陣列的程式碼~