Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語における多次元配列の初期化方法を徹底解説

配列とは、同じ型の要素が連続したメモリ領域に順番に格納されたデータの集合です。先頭の要素には最も小さいアドレスが割り当てられ、末尾の要素には最も大きいアドレスが割り当てられます。配列のインデックスは 0 から始まり、配列サイズ - 1 で終わる点に注意しましょう。また、配列のサイズは必ず 0 より大きい整数である必要があります。

配列のインデックスとサイズの関係

具体的な例で確認してみましょう。

配列サイズ = 10 の場合
最初のインデックス = 0
最後のインデックス = 配列サイズ - 1 = 10 - 1 = 9

多次元配列とは

多次元配列とは、いわば「配列の配列」のことです。データは表形式(行と列)で保持され、メモリ上には行優先(row-major order)で格納されます。

多次元配列の宣言構文

多次元配列を宣言する際の基本的な構文は以下の通りです。

型 配列名[サイズ1][サイズ2].......[サイズN];

それぞれの要素の意味は以下の通りです。

配列名 − 配列に付ける任意の名前です。

サイズ − 各次元の配列サイズを指定します。

多次元配列の初期化

多次元配列は、宣言と同時に波括弧 { } を使って以下のように初期化できます。

型 配列名[サイズ1][サイズ2].......[サイズN] = { {要素...}, {要素...}, ... , {要素...} };

サンプルプログラム

ここでは、2次元配列を宣言・初期化し、その全要素を出力するC言語のプログラムを紹介します。

#include <stdio.h>
int main () {
    int arr[2][3] = { {5,2,3}, {28,8,30}};
    int i, j;
    for ( i = 0; i < 2; i++ ) {
        for ( j = 0; j < 3; j++ )
        printf("arr[%d][%d] = %d\n", i, j, arr[i][j] );
    }
    return 0;
}

実行結果

arr[0][0] = 5
arr[0][1] = 2
arr[0][2] = 3
arr[1][0] = 28
arr[1][1] = 8
arr[1][2] = 30

プログラムの解説

このプログラムでは、まず2行3列の2次元配列を宣言し、同時に初期化しています。

int arr[2][3] = { {5,2,3}, {28,8,30}};

この宣言により、配列 arr は2つの行を持ち、それぞれの行に3つの要素が格納されます。

続いて、外側の for ループが行(第1添字)を、内側の for ループが列(第2添字)を制御するネストされたループ構造を使うことで、配列内のすべての要素を順番に出力しています。

for ( i = 0; i < 2; i++ ) {
    for ( j = 0; j < 3; j++ )
    printf("arr[%d][%d] = %d\n", i, j, arr[i][j] );
}

このように、多次元配列のすべての要素にアクセスしたい場合は、次元の数だけループを入れ子にするのが定石です。ぜひ実際にコードを書いて動作を確認してみてください。

  1. C言語の多次元配列とは?行優先・列優先の仕組みとサンプルコード

    多次元配列とは配列とは、同種のデータ(ホモジニアスなデータ)をまとめて管理するための基本的なデータ構造です。配列の要素は、メモリ上の連続した領域に順番に配置されます。しかし実際のプログラミングでは、1次元の配列だけでは不十分なケースが少なくありません。例えば、表形式のデータや行列を扱う場合には、2次元配列やさらに多くの次元を持つ多次元配列を作成する必要があります。行優先方式と列優先方式多次元配列をメモリ上に表現する方法には、大きく分けて2つのアプローチがあります。ひとつは行優先(Row-Major)方式、もうひとつは列優先(Column-Major)方式です。r行 c列の2次元配列を考えてみま

  2. C#の多次元配列とは?2次元配列の宣言方法と使い方を実例付きで解説

    C#では、多次元配列を扱うことができます。int型の2次元配列は、次のように宣言します。int[] a;多次元配列の中で最もシンプルな形式が2次元配列です。2次元配列とは、1次元配列を要素として持つ配列、すなわち「配列の配列」のような構造をイメージすると分かりやすいでしょう。例えば、次の図は3行4列の2次元配列を表しています。多次元配列の使用例ここからは、実際にC#で多次元配列を操作するサンプルコードを見ていきましょう。以下の例では、5行2列の2次元配列を宣言・初期化し、入れ子になったforループですべての要素を出力します。using System; namespace ArrayApplic