有人可以告诉我
之间的区别int *p[n];
和
int (*p)[n];
其中n
是否为任何数字?
我知道第一个案例意味着一个指针数组,但我想知道第二个声明意味着什么。
答案 0 :(得分:5)
int * p[10]
将p
定义为十个int
指针的数组。
int (*p)[10]
定义p
指向十个整数数组的指针。所以你可以说:
int a[10];
int (*p)[10] = &a;
答案 1 :(得分:0)
是的,所以C声明非常令人困惑。这篇文章似乎是如何解析它们的一个很好的指南。 http://www.antlr.org/wiki/display/CS652/How+To+Read+C+Declarations似乎第二种情况是指向大小为n的数组的指针。