2012-08-16 37 views
6

new T[7]創建一個數組7 T s。如果我們用int[5]代替T,我們得到new int[5][7],它應該創建一個由5個整數組成的數組。但是,它會創建一個由7個整數組成的5個數組的數組。這有什麼好的理由嗎?如果這是另一回事,它會更有意義嗎?創建多維數組時的尺寸順序

+3

所有類C語言都使用[row-major ordering](http://en.wikipedia.org/wiki/Row-major_order)。 Fortran使用列專業。把它看作*最重要的維度。 – Mysticial 2012-08-16 19:39:06

+0

我認爲這個問題非常合適,經常是混亂的根源。這是我在C++中迴避「裸」多維數組的衆多原因之一。 – sehe 2012-08-16 19:47:08

+1

查找時,索引與維度的順序相同,我認爲這比其他方式更有意義。 – 2012-08-16 19:56:59

回答

1

我認爲它是尺寸:

height width depth 
int[5] [7] [8] 

或者

rows cols 
int[5] [7] 

這就是爲什麼它是有道理的,它是5個陣列的7個整數給我。有一種自然秩序。

我認爲你的例子也有道理,而且非常合乎邏輯。所以我想這只是一個意見問題:P

-1

int ints [][] = new int [5][7];可以寫成int [] ints [] = new int [5][7];也許這會告訴你,它是有道理的,那些是7個整數的5個數組。 ;)

+0

這是真的嗎?另外,我不明白它有什麼幫助 – sehe 2012-08-16 19:48:49

+0

這是一個有趣的答案,來自我的+1。 – fredoverflow 2012-08-16 19:50:48

+0

+1有趣。我甚至不能解析語法。 – 2012-08-16 19:52:55