多次元配列

更新日:

用語解説

多次元配列は、二つ以上の添字を使って要素を指定する配列です。二次元配列は行列や表、三次元配列は層・行・列のような構造を表し、実際のメモリ上では一次元の連続領域へ規則的に配置されることがあります。

■ 試験で押さえるポイント

  • 要素A[i][j]は行添字iと列添字jで指定します。各次元の添字範囲を超えるアクセスは範囲外であり、言語によって例外、エラー又は未定義動作になります。

  • 行優先では同じ行の要素を連続配置し、0始まり・列数C・要素長sならA[i][j]の先頭からの変位は(iC+j)s(iC+j)sです。列優先なら、行数Rとして(jR+i)s(jR+i)sです。

  • n次元配列の総要素数は各次元長の積です。各要素がsバイトなら、管理情報を除くデータ容量は(knk)s\left(\prod_k n_k\right)sバイトで求めます。

  • 多次元配列は添字から位置を計算して直接アクセスできます。配列の配列として実装する場合は各行が別領域になることもあり、常に全要素が物理的に連続するとは限りません。

■ 選択肢での判断ポイント

次元ごとの要素数を掛けて容量を求め、行優先か列優先か、添字が0始まりか1始まりかを問題文で確認します。アドレス計算では基準アドレスと要素長を最後まで式に含めます。

例: 0始まりのint A[3][4]を行優先、1要素4B、基準アドレス1000とすると、A[2][1]の変位は(2×4+1)×4=36B(2\times4+1)\times4=36\,\mathrm{B}、アドレスは1000+36=10361000+36=1036です。総容量は3×4×4=48B3\times4\times4=48\,\mathrm{B}です。

音声で聞く

同じ分野の用語