c++ - C语言多维数组问题,本人小白刚学c
PHP中文网
PHP中文网 2017-04-17 15:28:07
0
2
659

请问各位大神,二维数组和三维数组的本质是神马?为啥要取多次*呢?那多维数组呢?对一维、二维、三维等数组名取地址取得是神马呢?请说得仔细点,本人小白,谢谢各位大神了

PHP中文网
PHP中文网

认证0级讲师

全員に返信(2)
伊谢尔伦

c の多次元配列は配列の配列である必要があるため、3D 配列は要素が 2D 配列である配列であり、2D 配列は要素が 1D 配列である配列です。

リーリー
  1. まず、1 次元配列の配列名は 1 次元配列の開始アドレスであることを明確にする必要があります。

  2. 多次元配列から取得した最下位次元を除く要素は、配列の開始アドレスである「配列名」とみなすことができます。たとえば、A[2] が A4 から取得された場合、A[2] は A4 内の 2 番目 (0 から数えて) の 1 次元配列の開始アドレスになります。

  3. それでは、4)から始めます。array[i][j][k]は単なる値なので問題ありません。

  4. 3) を見てみましょう。 array[i][j] は、この 3 次元配列で i 番目の 2 次元配列を選択し、次にこの 2 次元で j 番目の 1 次元配列を選択することを意味します。配列なので、array[i][j] はこの 1 次元配列の開始アドレス (1 次元配列の配列名として理解できます) なので、int (*c) を使用します。

  5. スキップ 2) 1) を見てみましょう。array は 3 次元配列の配列名であり、要素が 2 次元であるため、3 次元配列の開始アドレスでもあります。配列なので、int (*a)[4][5]

  6. を使用します。

その後、* 多くの質問があります:
たとえば、この A[m][n](i,j)
にアクセスしたい場合は、*(*(A + i) + j) を使用します。なぜなら、A は 2 次元配列の名前です。したがって、これは 2 次元配列の開始点です。開始アドレス A + i は A の i 番目の要素のアドレスであり、その値を取得するには × を使用します。値は 1 次元配列です。この 1 次元配列の開始アドレス、(A + i) + j は、この 1 次元配列の j 番目の要素のアドレスを取得し、 を使用してこの値を取得します。

いいねを押す +0
Peter_Zhu

本質的に、それらはすべて配列です。1 次元空間が直線であるのと同じように、2 次元空間は 1 つの次元を拡張することによって得られます。三次元空間。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート