C++ 指向函数的困难指针

C++ 指向函数的困难指针,c++,function,C++,Function,我正在读《用C++思考》一书。第164页(波兰语版)的第3章是关于函数指针的 书中的例子: void * (*(*fp1)(int))[10] float (*(*fp2)(int,int,float))(int) double (*(*(*fp3)())[10])() int (*(*f4())[10])() 你能告诉我该如何解释这一点吗?因为我不理解这本书的解决方案,这些例子产生了什么?我希望这条棘手的规则能帮助你解开这些难题: 我希望这条棘手的规则能帮助你解开这些难题: 让我们拿4:in

我正在读《用C++思考》一书。第164页(波兰语版)的第3章是关于函数指针的

书中的例子:

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

你能告诉我该如何解释这一点吗?因为我不理解这本书的解决方案,这些例子产生了什么?

我希望这条棘手的规则能帮助你解开这些难题:
我希望这条棘手的规则能帮助你解开这些难题:

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

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

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

的函数指针。让我们看4:
int(*(*f4())[10])()

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


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

Use
cdecl
的函数指针。这不是一个有趣的问题。我强烈反对“用C++思考”需要知道这一点的观点。cdecl.org很酷,但英语对C的胡言乱语会更酷。@john它确实做了英语对C的胡言乱语。试试看。使用
cdecl
。这不是一个有趣的问题。我强烈反对“用C++思考”需要知道这一点的观点。cdecl.org很酷,但英语对C的胡言乱语会更酷。@john它确实做了英语对C的胡言乱语。试试看。