close
說明:
陣列是一種結構性的資料儲存空間,其同一陣列裡的資料性質呈一致性,元素與元素之間的記憶位置是相鄰的,通常我們利用一個變數來代表整體的資料。舉例而言,我們可以把陣列想成一群鳥窩,而陣列裡的變數個數代表鳥窩的數目,例如:麻雀[20],我們可以想成麻雀的窩總共有二十間,每一間住著一間麻雀,假如我們想要知道第三間麻雀的名字,只要把麻雀[2]的值取出,便可知道住在第三間麻雀的姓名。C語言的陣列索引一定是從0的開始的。
格式:
根據陣列的結構而言,可以把陣列分為(1)一維陣列、(2)二維陣列、(3)多維陣列。
而其表示方法如下:
資料型態 陣列名稱[陣列大小];
資料型態 陣列名稱[陣列大小][陣列大小];
宣告陣列變數時,也可一併給與初始值:
int x[5] = {1,2,3,4,5}; int y[] = {1,2,3}; int z[3][4] = {{1,2,3,4},{5,6,7,8},{0,1,2,3}}; int a[];上面例子裡的y陣列大小,是由後面{}裡元素的個數決定。int a[]並沒有分配儲存陣列內容的空間,因此可視為指標宣告。
引用方式:
陣列名稱[索引值]
陣列名稱[索引值][索引值]
圖示:
範例:(輸入3個實數,並求其平均值)
#include<stdio.h> void main() { float num[3], sum=0; int i; for (i = 0; i < 3; i++) { printf("Input a number to num[%d] : ", i); scanf("%f", &num[i]); sum = sum + num[i]; } printf("The average is %f\n", sum / i); }
陣列的空間分配方式
無論是幾維的陣列,C語言都以分配一塊連續的記憶體空間來處理。
int x[10];
分配10*sizeof(int)個bytes
int x[5][10];
分配5*10*sizeof(int)個bytes
int x[4][5][6];
分配4*5*6*sizeof(int)個bytes
void fun(int x[]) { }
全站熱搜
留言列表