類型 陣列名[常數運算式1][常數運算式2];
例:int a[3][4]; 為 3 行 4 列,共 12 個元素:a[0][0] ~ a[2][3]。
C 採行優先:先存第 0 列所有行,再第 1 列... 每元素佔 sizeof(類型) 位元組。概念上為平面,物理上為線性連續。
陣列名[下標1][下標2],下標可為整數常數、變數或運算式。說明時方括號給長度,引用時給位置,兩者意義不同。
5 人 3 科成績,用 a[5][3] 儲存,v[3] 存各科平均,average 存總平均。雙重迴圈按科目累加再除以 5。
for(i=0;i<3;i++) {
for(j=0;j<5;j++) { scanf("%d",&a[j][i]); s+=a[j][i]; }
v[i]=s/5; s=0;
}
average=(v[0]+v[1]+v[2])/3;
int a[5][3] = { {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
int a[5][3] = { 80,75,92, 61,65,71, 59,63,70, 85,87,90, 76,77,85 };
結果相同。範例 7-7 同 7-6 但用初始化賦值。
int a[3][3]={{1},{2},{3}}; → 每行首列賦值,其餘 0。int a[][3]={1,2,3,4,5,6,7,8,9};a[3][4] 可分解為三個一維陣列 a[0], a[1], a[2],各 4 元素。它們是陣列名,不可作下標變數用。