我今天在接受記者採訪時,並提出以下兩個聲明的區別:這兩個C聲明有什麼區別?
int *A[10];
和
int (*A)[10];
,我不知道。如果你認爲我錯過了一些重要的指針'指針',請讓我知道。謝謝。
我今天在接受記者採訪時,並提出以下兩個聲明的區別:這兩個C聲明有什麼區別?
int *A[10];
和
int (*A)[10];
,我不知道。如果你認爲我錯過了一些重要的指針'指針',請讓我知道。謝謝。
第一個聲明一個指向int
的十個指針的數組,第二個指針指向一個數組的十個int
s。
的[]
結合比*
更緊,所以第一可同樣被寫入
int *(A[10]);
鑑於
int *A[10]; // an array of 10 int pointers
一元*
和[]
的相對優先級使這相當於
int *(A[10]); // same
第二個聲明改變了隱式排序來
int (*A)[10]; // a pointer to an array of ten ints
這是關於優先級,而不是關聯性,不是? –
有疑問時[CDECL](http://cdecl.org/) – Joe
http://stackoverflow.com/questions/89056/如何閱讀-c-聲明 –
@Joe真的很酷的鏈接。 –