2016-10-30 9 views
0

に私は、現在のC#を学ぶしようとしている、と私は、次の質問に出会っ:の違い[、]と[] [] C#の

C#でのタイプで[,][][]の違いは何ですか?

+0

ドキュメントを読む必要があるので、この質問をトピックとして閉じるよう投票しています! –

+0

http://stackoverflow.com/questions/597720/what-are-the-differences-between-a-multidimensional-array-and-an-array-of-arrays –

答えて

1

[,]フォームは、長方形の2次元配列を作成します。ディメンションを指定すると、それらのサイズの2次元マトリックスが得られます。すべての要素は、要素型のデフォルト値に初期化されます。

int[,] array = new int[4, 2]; 

メモリ通り、アレイは、(サイズwidth*heightの)メモリ内の単一のブロックとして格納されます。要素へのアクセスは少し遅く、ランタイムはより高価な操作を行います - http://blog.mischel.com/2013/05/08/are-jagged-arrays-faster-than-rectangular-arrays/

[][]は、基本的に配列の配列です。 (彼らは最初はnullある)

jaggedArray[0] = new int[10]; 
jaggedArray[1] = new int[6]; 

int[][] jaggedArray = new int[3][]; 

は今、あなたは手動で行ごとに、new配列を作成する必要があります:あなたはそれを作成するときは、まず最初の次元のサイズを指定しますこれの利点は、各行が異なる長さを持つことができることです。

メモリ内では、それぞれの行は別の場所に格納されますが、特定の要素へのアクセスは、実行時に基本配列の行配列へのポインタを見つけて、要素は通常の配列と同じです。

+0

多次元配列の保存方法が異なりますか? (高さ、幅、データ、幅、データ...の代わりに 'height、width、data ...'のようにjaggedArrayと同じように) – CodenameLambda

+0

はい、非常に異なっています。両方の説明 –

関連する問題