0

我正在阅读“用 C++ 思考”布鲁斯·埃克尔 (Bruce Eckel) 的书。第 164 页(波兰语版)中的第 3 章是关于函数指针的。

书中的例子:

void * (*(*fp1)(int))[10]
float (*(*fp2)(int,int,float))(int)
double (*(*(*fp3)())[10])()
int (*(*f4())[10])()

你能告诉我我应该如何解释这一点以及这些例子创造了什么,因为我不明白这本书的解决方案吗?

4

2 回答 2

3

我希望这个棘手的规则能帮助你解开这些难题: http ://c-faq.com/decl/spiral.anderson.html

于 2012-10-17T15:14:53.290 回答
1

让我们拿4:int (*(*f4())[10])()

它读取已f4评估 ( f4()),然后取消引用 ( (*f4())) 可以订阅 ( (*f4())[10]),然后取消引用 ( (*(*f4())[10])) 并评估以给出int( int (*(*f4())[10])())。

因此,它是一个将数组指针返回到返回函数指针的函数int

于 2012-10-17T15:17:07.763 回答