はじめに
- これまでの学習に続いて、今回は2次元配列について学んだ結果をまとめてみました。
学習環境
- 今回はpaiza.ioのC言語のエディタを使いました。
サンプルコード
基本的な2次元配列の使い方
- 2次元配列は
データ型名
と配列名
に続いて、行数
と列数
を指定して宣言します。 - 普通の配列(1次元の配列)では「配列全体のデータサイズ÷データ型のデータサイズ」で配列の長さを求めましたが、2次元配列では行数と列数を求める方法が分からなかったので微妙なコードになりました。
どなたか良い方法をご存じでしたら教えてください。- 2次元配列の行数と列数を求める方法は、以下のコメント欄に2通りの方法が書かれています。
- @angel_p_57 さん、 @SaitoAtsushi さん、ありがとうございました。
main.c
#include <stdio.h>
int main(void){
// 3行2列の2次元配列の宣言
int ary2D [3][2];
ary2D[0][0] = 0;
ary2D[0][1] = 1;
ary2D[1][0] = 1;
ary2D[1][1] = 2;
ary2D[2][0] = 3;
ary2D[2][1] = 5;
int rowCount = 3; // 行数
int colCount = 2; // 列数
for (int i=0; i<rowCount; i++) {
for (int j=0; j<colCount; j++) {
printf("%d行目の%d列目の値は%dです。\n", i+1, j+1, ary2D[i][j]);
}
}
}
実行結果
1行目の1列目の値は0です。
1行目の2列目の値は1です。
2行目の1列目の値は1です。
2行目の2列目の値は2です。
3行目の1列目の値は3です。
3行目の2列目の値は5です。
配列の宣言と同時に初期化する
- 2次元配列を初期化するには、中カッコ(ブレース)で囲まれた中に行単位で初期値を設定します。
main.c
#include <stdio.h>
int main(void){
// 3行2列の2次元配列の初期化
int ary2D [3][2] = {
{0, 1},
{1, 2},
{3, 5}
};
int rowCount = 3; // 行数
int colCount = 2; // 列数
for (int i=0; i<rowCount; i++) {
for (int j=0; j<colCount; j++) {
printf("%d行目の%d列目の値は%dです。\n", i+1, j+1, ary2D[i][j]);
}
}
}
参考URL
参考資料
-
スッキリわかるC言語入門 第2版
- p.237~p.240