この記事では、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言語入門 (サンプルプログラム集) |
コメント