多次元配列
読み:たじげん-はいれつ

 配列型のうち、添え字(index)が二つ以上のもの。
目次

概要
 一次元配列と比較すると、複雑な配列型である。
 配列は多次元であってもメモリー空間は一次元であるため、データは一次元に並べ直して配列される。

特徴

用法
 例えばC/C++では、変数などの定義時に要素数を次のように書くことで、二次元配列とする。
 int hoge[2][3];
 この場合、配列hogeは、次のように2×3つ分のメモリーが連続して確保されている。
 [0][0] [0][1] [0][2] [1][0] [1][1] [1][2]
 これを、次のようにして参照する。
 hoge[1][1] = 0x11;
 C/C++の場合、これは構文糖であり、次のようにしても同じ意味である。
 hoge[(1 * 3) + 1] = 0x11;

関数の引数
 多次元配列は多次元のデータ構造を扱う時に分かり易くなる利点があるが、関数の引数として渡す場合に難しくなる。
 言語内部では一次元であれ多次元であれ、押し並べて一次元的に扱っているためである。もし、多次元の配列を引数に渡したい場合は、次のような記法を用いる必要がある。
 int hoge[2][3];
 func(hoge);
 ...
 void func(int (*phoge)[3]) {
 ...
 }
 このように書くことで、添え字のうちの一つの上限が3であることが分かるため、関数func内でも、その変数が[?][3]で定義されたようにして記述することができる。

再検索