2017-06-14 87 views
-1

同時讀取C++二維數組,我們可以在
這樣一種方式宣告我打:二維數組讓我處境艱難

month=4;. // Initialize value of mont variable 
void display(float [ ] [month]); //declare 

我想知道,爲什麼功能並不需要的拳頭大小尺寸 ?

我在很多論壇上問這個問題,但只得到如何聲明這樣的數組。但從來沒有找到答案爲什麼?

回答

0

因爲傳遞給函數的數組被視爲指針(對數組的第一個元素)。

所以像

float month[][X] 

參數聲明等於

float (*month)[X] 

所以month是指向float類型的X元件的陣列。

這是因爲「2d」陣列實際上是陣列的陣列。 C++並沒有真正的多維數組。

另請注意,array of arrays is not the same as a pointer to a pointer。對指針的衰減只發生在外部數組(「第一維」)。