0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【C】初めてのC言語(8. 2次元配列)

Last updated at Posted at 2022-06-14

はじめに

学習環境

  • 今回は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

参考資料

0
0
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?