2011-03-29 69 views
0

这些结构是否相同?这些指针结构是否相同?

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

int *(*p())[10] 
+0

另请参阅此问题http://stackoverflow.com/questions/2192620/array-of-n-pointers-to-functions-returning-pointers-to-functions – UmmaGumma 2011-03-29 13:55:50

回答

12

这里就是不断的精彩cdecl说:

  1. int *(*p[10])():声明p为指针数组10函数返回指针int
  2. :声明p作为函数返回指向数组10的指针指向int

直观上,它们“不应该”是相同的,因为C++的声明语法很少含糊不清(至少对我来说这很直观)。

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

+0

+1尼斯链接... – Oswald 2011-03-29 13:47:53

+0

谢谢,它的伟大:) – stemm 2011-03-29 13:48:25

+0

之前没有看过cdecl。太棒了。 – 2011-03-29 13:49:49