【C言語】2次元配列の宣言・初期化・代入

この記事では、C言語で二次元配列の宣言・初期化・代入する方法について解説します。

2次元配列とは

通常の配列は、データを1列に並べるため、1次元配列です。
それに対して、2次元配列は縦横の2次元で配列を考えます。
2次元で配列を考えると、ゲームのマップや画像など、2次元のデータを扱う際には非常に便利です。

2次元配列を使用する際は、まず宣言を行う必要があります。

書式 説明
型 配列名[縦の要素数][横の要素数]; 縦の要素数×横の要素数の2次元配列を宣言します。
記述例 説明
int score[2][3]; 要素数が2×3のint型の2次元配列を宣言

| int | int | int |
| int | int | int |

配列の初期化

2次元配列を宣言する際に、同時に初期値を与えることができます。
これを「2次元配列の初期化」といいます。
初期化する際は、初期値をカンマ( , )で区切って括弧{ }内に並べます。
並べる初期値の個数は宣言した要素数に合わせる必要があります。
(要素数2×3なら初期値は6個必要)

記述例 説明
例① int score[2][3] = {10, 20, 30, 40, 50, 60}; 要素数2×3のint型の配列を初期化します。
例② int score[2][3] = { {10, 20}, {30, 40}, {50, 60} }; 2次元配列を初期化をする際には、左のようにわかりやすく記述することもできます。
例③ int score[ ][ ] = { {10, 20},{30, 40},{50, 60} }; 期値を同時に与える場合は、要素数の記述を省略することもできます。(省略すると要素数は初期値の個数に自動的に設定されます)

上記の例だと、score[0][0]に10、score[0][1]に20、score[0][2]に30、score[1][0]に40、score[1][1]に50、score[1][2]に30がそれぞれ格納されます。

| 10 | 20 | 30 |
| 40 | 50 | 60 |

変数の代入

宣言した配列にデータを入れることを「配列への代入」といいます。
代入を行うと初期化したときのデータは消えます。(上書きされる)

代入の例

score[0][0] = 50;
score[0][1] = 70;
score[0][2] = 80;

注意|配列の要素を指定する添え字の数は、「0 ~ (要素数 -1)」となります。
例|要素数が3の場合は、有効な添え字は0~2となります。
※添え字は1~3だと間違えることが多いので注意

1次元配列同様、2次元配列でもint型の配列にchar型のデータを代入することはできません。

関連記事
1 配列とは?(意味・メリット・変数との違いなど)
2 C言語入門 (サンプルプログラム集)
関連記事