
【6日でできるC言語入門】多次元配列
C言語で多くのデータを扱う場合、1次元配列だけでなく、多次元配列を利用することで複雑なデータの管理や処理が簡単にできます。多次元配列は、2次元配列や3次元配列など、複数の「添え字(インデックス)」を使ってデータを整理できる構造です。表や行列、座標データ、成績表など、縦横(行・列)の形でデータを管理したいときに活躍します。
ここでは基本的な2次元配列を中心に、その使い方や応用例をわかりやすく解説します。

1.2次元配列の基本
1.1. 2次元配列の宣言と使い方
2次元配列は「型 配列名[行数][列数];」の形式で宣言します。
たとえば、3行4列の整数型配列は次のように書きます。
int table[3][4];| 項目例 | 意味 |
|---|---|
| int a[3][4]; | 3行4列のint型配列 |
| a[1][2] = 7; | 2行3列目(0始まり)に代入 |
1.2. 2次元配列の初期化と活用例
サンプルプログラム1:九九表(2行4列)の作成
プロジェクト/ファイル名: Lesson32_1/main.c
#include <stdio.h>
int main(void) {
int matrix[2][4] = { {1, 2, 3, 4}, {5, 6, 7, 8} };
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++) {
printf("matrix[%d][%d]=%d ", i, j, matrix[i][j]);
}
printf("\n");
}
return 0;
}実行結果
matrix[0][0]=1 matrix[0][1]=2 matrix[0][2]=3 matrix[0][3]=4
matrix[1][0]=5 matrix[1][1]=6 matrix[1][2]=7 matrix[1][3]=82.2次元配列を使ったデータ処理
2.1. 要素への値の代入と利用
2次元配列はfor文の2重ループを使って全ての要素にアクセスできます。
サンプルプログラム2:各要素に計算した値を格納
プロジェクト/ファイル名: Lesson32_2/main.c
#include <stdio.h>
int main(void) {
int table[3][4];
int row, col;
// 配列に値を代入(行番号+列番号)
for (row = 0; row < 3; row++) {
for (col = 0; col < 4; col++) {
table[row][col] = row + col;
}
}
// 配列内容の表示
for (row = 0; row < 3; row++) {
for (col = 0; col < 4; col++) {
printf("%d ", table[row][col]);
}
printf("\n");
}
return 0;
}実行結果
0 1 2 3
1 2 3 4
2 3 4 52.2. 添え字(インデックス)に関する注意
- 2次元配列の行・列どちらも0から開始です。
- 配列の範囲外にアクセスしないように注意しましょう。
| 宣言 | 有効な添え字 |
|---|---|
| int a[2][3]; | a[0][0]~a[1][2] |
3.3次元以上の配列
3.1. 3次元配列の例
float data[2][3][4]; // 2×3×4のfloat型配列3次元配列も同じ要領で管理できます。用途は少ないですが、複雑なデータ構造の管理に利用されます。
まとめ
- 多次元配列は複雑なデータを行・列・階層でまとめて管理できる。
- 2次元配列は表や行列データの管理に便利
- 行・列の添え字の扱いと範囲外アクセスに注意する。
- 3次元以上も同様に使えるが、管理が複雑になるので注意
多次元配列を使いこなせば、C言語でのデータ処理の幅がさらに広がります!
