2次元配列

 前節まで学習した配列はデータが線のように一列に並んでいるため、1次元配列と呼ばれます。これから縦と横に、つまり表のように並べる配列(2次元配列)を見てみましょう。2次元配列は次のように宣言します。

2次元配列宣言の書式
データ型 配列名[要素数指定][要素数指定];

○ ファイル

 次のようにファイルを作成してください。今回は、プログラムの入力のみを試します。実行してもメッセージ等は表示されません。

ファイル名 twoDimensionalAarray1.c

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #include <stdio.h>
  2. int main(void){
  3.  //配列を宣言
  4.  int data[3][4];
  5.  return 0;
  6. }

○ 解説

 5行目で2次元配列を宣言しています。縦3×横4の配列が用意されます。4つの要素を持つ配列が3つあるようなイメージです。

2次元配列の宣言
2次元配列の宣言

 次に2次元配列に値を代入する方法を見てみましょう。

2次元配列へデータ代入の書式
配列名[インデックス番号][インデックス番号] = ;

○ ファイル

 次のようにファイルを作成してください。

ファイル名 twoDimensionalAarray2.c

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #include <stdio.h>
  2. int main(void){
  3.  //配列を宣言
  4.  int data[3][4];
  5.  //配列に値を代入
  6.  data[0][0] = 0;
  7.  data[0][1] = 0;
  8.  data[0][2] = 100;
  9.  data[0][3] = 0;
  10.  data[1][0] = 200;
  11.  data[1][1] = 0;
  12.  data[1][2] = 0;
  13.  data[1][3] = 0;
  14.  data[2][0] = 0;
  15.  data[2][1] = 0;
  16.  data[2][2] = 0;
  17.  data[2][3] = 300;
  18.  //配列の中身を表示
  19.  printf("%d¥n", data[0][0]);
  20.  printf("%d¥n", data[0][1]);
  21.  printf("%d¥n", data[0][2]);
  22.  printf("%d¥n", data[0][3]);
  23.  printf("¥n");
  24.  printf("%d¥n", data[1][0]);
  25.  printf("%d¥n", data[1][1]);
  26.  printf("%d¥n", data[1][2]);
  27.  printf("%d¥n", data[1][3]);
  28.  printf("¥n");
  29.  printf("%d¥n", data[2][0]);
  30.  printf("%d¥n", data[2][1]);
  31.  printf("%d¥n", data[2][2]);
  32.  printf("%d¥n", data[2][3]);
  33.  return 0;
  34. }

○ 実行結果

0
0
100
0

200
0
0
0

0
0
0
300

○ 解説

 10行目では0番の配列の2番の要素に「100」を代入しています。 12行目では1番の配列の0番の要素に「200」を代入しています。 19行目では2番の配列の3番の要素に「300」を代入しています。他の要素は「0」を代入しています。

2次元配列に代入
2次元配列に代入

 次に、2次元配列での初期化の方法を学習しましょう。

2次元配列初期化の書式
データ型 配列名[要素数指定][要素数指定] = @{!!値1, 値2, }, {値1, 値2, !!};
データ型 配列名[][要素数指定] = @{!!値1, 値2, }, {値1, 値2, !!};

○ ファイル

 次のようにファイルを作成してください。

ファイル名 twoDimensionalAarray3.c

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #include <stdio.h>
  2. int main(void){
  3.  //配列の初期化
  4.  int ary[2][4] = @{!!10,20,30,40}, {100,200,300,400!!};
  5.  //配列を表示
  6.  printf("%d¥n", ary[0][0]);
  7.  printf("%d¥n", ary[0][1]);
  8.  printf("%d¥n", ary[0][2]);
  9.  printf("%d¥n", ary[0][3]);
  10.  printf("¥n");
  11.  printf("%d¥n", ary[1][0]);
  12.  printf("%d¥n", ary[1][1]);
  13.  printf("%d¥n", ary[1][2]);
  14.  printf("%d¥n", ary[1][3]);
  15.  return 0;
  16. }

○ 実行結果

10
20
30
40

100
200
300
400

○ 解説

 5行目では2次元配列の宣言と同時に値を格納しています。1つの配列に初期化する値を「{}」内で指定し、それをさらにカンマ区切りで複数指定します。

2次元配列の初期化
2次元配列の初期化

前へ   次へ