指针数组和括号中的指针

时间:2013-08-07 18:12:29

标签: c pointers

有人可以告诉我

之间的区别
int *p[n];

int (*p)[n];

其中n是否为任何数字?

我知道第一个案例意味着一个指针数组,但我想知道第二个声明意味着什么。

2 个答案:

答案 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的数组的指针。