难以指向函数的指针

difficult pointer to function

本文关键字:指针 函数      更新时间:2023-10-16

我正在读《C++思考》一书,布鲁斯·埃克尔。第164页(波兰文版)的第3章是关于函数的指针。

书中的例子:

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

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

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

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

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

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