这些指针结构是否相同?

时间:2011-03-29 13:41:32

标签: c++

这些结构是否相同?

int *(*p[10])() //array of ten pointers onto int functions

int *(*p())[10]

1 个答案:

答案 0 :(得分:12)

没有

以下是非常精彩的cdecl所说的:

  1. int *(*p[10])():将p声明为指向函数的指针的数组10,返回指向int的指针
  2. int *(*p())[10]:声明p作为函数返回指向int指针的数组10的指针。
  3. 直观地说,它们“不应该”是相同的,因为C ++的声明语法很少含糊不清(至少对我来说是直观的)。

    值得指出的是,cdecl也是一个命令行工具,链接到托管其实例的网页更方便。只是想说清楚,这是一个(非常)旧工具,我第一次看到它在Kernighan和Ritchie的"The C Programming Language"书中提到过,我相信我有第二版。