-2

谁能告诉我两者之间有什么区别

int *p[n];

int (*p)[n];

哪里n有数字?

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

4

2 回答 2

5
  • int * p[10]定义p为十个int指针的数组。

  • int (*p)[10]定义p一个指向十个整数数组的指针。所以你可以说:

    int a[10];
    
    int (*p)[10] = &a;
    
于 2013-08-07T18:15:27.797 回答
0

是的,所以 C 声明非常混乱。这篇文章似乎是如何解析它们的好指南。http://www.antlr.org/wiki/display/CS652/How+To+Read+C+Declarations第二种情况似乎是指向大小为 n 的数组的指针。

于 2013-08-07T18:16:58.803 回答