【C言語】2次元配列をポインタを使って操作する方法

この記事では、C言語における2次元配列をポインタを使って操作する方法について解説します。

目次から探す

2次元配列のポインタ

2次元配列をポインタを使って操作する方法について解説します。

2次元配列は、行と列からなる表のようなデータ構造であり、ポインタを使うことで効率的に要素にアクセスすることができます。

2次元配列のポインタの宣言方法

2次元配列のポインタを宣言するには、ポインタ型として配列の型を指定します。

具体的な宣言方法は以下の通りです。

データ型 (*ポインタ変数名)[列数];

例えば、int型の要素を持つ3行4列の2次元配列のポインタを宣言する場合は、以下のようになります。

int (*ptr)[4];

ポインタを使った2次元配列の要素へのアクセス方法

2次元配列のポインタを使って要素にアクセスするには、ポインタを介して行と列のインデックスを指定します。

具体的なアクセス方法は以下の通りです。

ポインタ変数名[行インデックス][列インデックス]

例えば、以下のような3行4列の2次元配列がある場合、

int array[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

ポインタを使って要素にアクセスする場合は、以下のようになります。

ptr[行インデックス][列インデックス]

例えば、2行目の3列目の要素にアクセスする場合は、以下のようになります。

ptr[1][2]

2次元配列のポインタと関数

2次元配列のポインタを関数に渡す方法や、関数内で2次元配列のポインタを操作する方法について解説します。

関数に2次元配列のポインタを渡す方法

関数に2次元配列のポインタを渡す場合は、関数の引数としてポインタ型を指定します。

具体的な方法は以下の通りです。

void 関数名(データ型 (*ポインタ変数名)[列数])

例えば、以下のような関数がある場合、

void printArray(int (*ptr)[4]) {
    // 配列の要素を表示する処理
}

この関数に2次元配列のポインタを渡す場合は、以下のようになります。

printArray(ptr);

関数内で2次元配列のポインタを操作する方法

関数内で2次元配列のポインタを操作する場合は、ポインタを介して要素にアクセスし、値を変更することができます。

具体的な方法は先ほどの要素へのアクセス方法と同じです。

例えば、以下のような関数がある場合、

void modifyArray(int (*ptr)[4]) {
    // 配列の要素を変更する処理
}

この関数内で2次元配列のポインタを操作する場合は、ポインタを使って要素にアクセスし、値を変更します。

以上が、C言語における2次元配列をポインタを使って操作する方法です。

ポインタを使うことで、効率的に2次元配列の要素にアクセスしたり、関数に渡したりすることができます。

是非、実際にコードを書いて試してみてください。

目次から探す