谁能告诉我两者之间有什么区别
int *p[n];
和
int (*p)[n];
哪里n
有数字?
我知道第一种情况意味着一个指针数组,但我想知道第二种声明意味着什么。
int * p[10]
定义p
为十个int
指针的数组。
int (*p)[10]
定义p
一个指向十个整数数组的指针。所以你可以说:
int a[10];
int (*p)[10] = &a;
是的,所以 C 声明非常混乱。这篇文章似乎是如何解析它们的好指南。http://www.antlr.org/wiki/display/CS652/How+To+Read+C+Declarations第二种情况似乎是指向大小为 n 的数组的指针。