【发布时间】:2014-01-19 03:00:24
【问题描述】:
我迷失在这个宣言中 - int (*(*foo)(double))[3];
我的理解是这是一个大小为 3 的数组,其中元素是一个函数指针,采用 double 并返回指向 int 的指针。但是,正确的解释似乎是“指向函数的指针采用 double 并返回指向 3 int 数组的指针”。 返回的指向 3 个 int 数组的指针让我很困惑,因为 int 和 [3] 相距甚远。
这是为什么呢?声明这种复杂变量的语法或规则是什么?
【问题讨论】:
-
请参阅:stackoverflow.com/questions/3706704/… 以获取答案中的一些指南。
-
@user2485710 他们已经有了正确的答案。他们想知道为什么。
-
好吧,
int和[3]如果您将括号中的位视为一个“事物”,则相差不远。int a[3];与int (...)[3];.
标签: c++