2016-07-06 55 views
0

去這裏:http://cdecl.org/cdecl澄清要求:什麼是「陣列5?」

輸入:

char (*arr)[5] 

輸出:

聲明改編爲字符指針

什麼是 「排列5」 的陣列5?這是否僅僅意味着一個包含5個元素的數組?

+0

是的,它的作用。什麼讓你感到不舒服?數組可以衰變爲指針的事實? –

+1

@ jnbrq-CanberkSönmez數組可隱式轉換爲指向第一個元素的指針,但此「衰減」不是指向數組的指針。 OP有什麼是一個實際的指針 –

+0

沒有不適,只需要澄清 –

回答

1

它是一個指向5個元素數組的指針。

//Standard array 
char array[5]; 

//pointer to array 
char (*arr)[5]; 

//Assign pointer of array to arr 
arr = &array; 

//Dereference arr and use it. 
(*arr)[1] = 4; 

指針和對數組的引用是用於使陣列的功能,以及返回它們是有用的。不要返回本地非靜態數組,因爲它們的生命週期在返回時結束。

要引用數組,你可以使用此聲明: char (&arr)[5] = array;

+0

顯然,我無法接受你的回答10分鐘。要給其他人一個機會。 –