我今天在接受记者采访时,并提出以下两个声明的区别:这两个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真的很酷的链接。 –