我正在读“用C ++思考”Bruce Eckel。第164页的第3章(波兰语版)是关于功能的指针。
书中的例子:
void * (*(*fp1)(int))[10]
float (*(*fp2)(int,int,float))(int)
double (*(*(*fp3)())[10])()
int (*(*f4())[10])()
你能告诉我我应该如何理解这些以及这些例子所创造的内容,因为我不理解这本书的解决方案吗?
答案 0 :(得分:3)
我希望这个棘手的规则可以帮助你解除这些难题: http://c-faq.com/decl/spiral.anderson.html
答案 1 :(得分:1)
我们采取4:int (*(*f4())[10])()
它读取f4
已评估(f4()
)然后解除引用((*f4())
)可以订阅((*f4())[10]
)然后取消引用((*(*f4())[10])
)并进行评估提供int
(int (*(*f4())[10])()
)。
因此,它是一个将数组指针返回给返回int
的函数指针的函数。