难以指向功能

时间:2012-10-17 15:12:39

标签: c++ function

我正在读“用C ++思考”Bruce Eckel。第164页的第3章(波兰语版)是关于功能的指针。

书中的例子:

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

你能告诉我我应该如何理解这些以及这些例子所创造的内容,因为我不理解这本书的解决方案吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

它读取f4已评估(f4())然后解除引用((*f4()))可以订阅((*f4())[10])然后取消引用((*(*f4())[10]))并进行评估提供intint (*(*f4())[10])())。

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