9

私がこれまでに読んだほとんどのプログラミング本には、次の行があります。

「X言語は真の多次元配列をサポートしていませんが、配列の配列でシミュレート(概算)できます。」

私の経験のほとんどは C ベースの言語、つまり C++、Java、JavaScript、php などであったため、「真の」多次元配列が何であるかはわかりません。

真の多次元配列の定義とそれをサポートする言語は? また、可能であれば、真の多次元配列の例をコードで示してください。

4

4 に答える 4

0

Sun や Microsoft のサイトにある膨大な量の文献に目を通すことなく、これが私の C 時代の記憶です。お役に立てれば。

簡単にするために、2 次元で考えると、配列は 2 次元配列またはポインターの配列として表すことができます。コードでは、これは int x[15][20]; になります。int *y[15];

この例では、x[5][6] と b[5][6] は両方とも構文的に有効であり、単一の int を参照することになります。

そうは言っても、x は真の 2 次元配列です。一度作成すると、300 の位置 (int を含むことができます) が確保され、よく知られている添字規則を使用してこの四角形にアクセスできます ( 15 行 20 列) の配列で、(20 * 行) + col を計算して x[row,col] を取得できます。

ただし、y の場合、構造体が定義されている間、15 個のポインターのみが割り当てられますが、初期化はされません。(初期化は明示的に行う必要があります)

このアプローチには長所と短所があります (ポインター配列または「配列の配列」またはジャグ配列と呼ばれます)。

アドバンテージ:

この配列の行は長さが異なる場合があります。つまり、y の各要素が 20 要素の ROW を指す必要はありません。1 つの要素が 2 つの要素を指し、2 番目の要素が 3 つの要素を指し、3 番目の要素が 0 の要素を指す場合があります。

不利益:

ただし、最良のシナリオを考えると、y の各要素が 20 要素の配列を指している場合、300 の整数位置が確保され、さらにポインター用に 10 個のセルが追加されます。

現在の例の観点からは、上記の C シャープの例 (以前の投稿の 1 つ) で十分です。

于 2011-11-18T05:52:34.020 に答える