2016-07-30 13 views
1

まず、以下の論理が正しいかどうかを明確にしたいと思います。 2次元配列では、A [x] [y]中カッコの数、およびy各中カッコの中の要素の数。 INTので、[2] [3]のように初期化されます。多次元配列の位置と、初期化時の表現との相関

{ 
{1,2,3}, //from A[0][0] to A[0][2]; 
{4,5,6} //from A[1]{0] to A[1][2]; 
}; 

第二に、私は同様の相関が3次元配列であるかを知りたい、4次元、というように、そしてどのように知っているの寸法数は、任意の多次元配列のどのレベルに相関するか。 たとえば、A [3] [4] [2]では、3は各表の2d表または行/列の数を表しますか?そして、A [2] [3] [4] [5]では、2は2d表の数を表します。 3Dテーブル、いいえ。 1dテーブルのうちの1つ、またはいいえ。行/列の1dテーブルあたりの?注:私は多次元配列の周りに頭を浮かべています。可能な限り単純に説明してください。

+0

上記の例は正しいものであり、余分な次元ごとに抽象的になりますが、3Dなどへの補外は機能します。 3D配列は2D配列などの配列です。また、配列インデックスの* pointer *表記に慣れていることを確認してください。 'A [x] [y] = *(*(A + y)+ x)'である。 (ハンドルの面白い姓 ':) ' –

+0

私はそれを知っています、私はちょうどどの次元番号が初期化の間に何に相関するのか知りたいです。私は明確にするために例を編集しました。 –

+0

あなたの質問にあなたの編集を残しておきますが、 '\ '\' backtickの間にインラインコードを書いてください。それは、抽象化がヘッド・ゲームになったことです。 3Dを使って、2D配列の配列を作る新しい次元であるので、 'A [2] [2] [3]'は余分な '{}'のセットの中で上記の2つになります。 –

答えて

2

はいあなたはそれが正しいと言います。あなたはを再帰的にと考えることができます。

スタート1D配列(のは、それは3つの要素を持っていると仮定する)から:今、2次元配列を生成

int 1darray[] = {0, 1, 2}; 

は単に1darrayのすべての要素の内側に移動して、別の1次元配列を入れて、生産すると言います1darray_01darray_11darray_2ちょうどように、1Dアレイである

int 2darray[] = {1darray_0, 1darray_1, 1darray_2}; 

:このような2D一私たちは最初に作成しました。これで3x3の2D配列が形成されます。


今3Dアレイは次のように形成することができる。

int 3darray[] = {2darray_0, 2darray_1, 2darray_2}; 

2darray_02darray_12darray_2だけで、我々は上記で作成した2darrayように、2D配列です。これで3x3x3の3D配列が形成されます。


あなたの例:

A[3][4][2] 

Aを有することを言う:

  1. 3行
  2. 4列
  3. 2、Z列
一般的には

しかし、私は心の中で、私は私の2D dynamic array (C)を持っている絵を持っているあなたをアドバイスします:

私はスタートで説明しようとしたものを一言で言えば説明

enter image description here

ディメンションを大きくすると、前の配列のすべての要素が次のディメンションの配列に置き換えられます。

関連する問題