多次元配列
読み:たじげん-はいれつ
配列型のうち、添え字(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]で定義されたようにして記述することができる。
再検索