2次元以上の配列を作ることもできる。単に、サイズの指定を増やせばいいだけだ。
int ary2[4][5]; int ary3[3][3][3];
これらの配列は、メモリ上にはより右に書いてあるの次元の配列が連続して割り当てられる。言い換えると、最も低いアドレスから高いアドレスに順にアクセスしていくと、より右の添字のほうが早く変化する。
4次元以上についても同様。もっとも、そんな次元の配列を使う機会はそうなないだろう。
次のプログラムは、4×5の2次元配列を作って各添字の積を格納してから、行列形式で表示する。
#include
int main(void)
{
int twod[4][5];
int i, j;
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
twod[i][j] = i * j;
}
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
printf("%d ", twod[i][j]);
}
printf("\n");
}
}
takatoh@nightschool $ ./sample_5_3 0 0 0 0 0 0 1 2 3 4 0 2 4 6 8 0 3 6 9 12