如何声明一个指向函数的指针()

好吧, 我们假设你知道C中的指针是什么意思。那么我们如何在C中创建一个指向整数的指针?
嗯..这很简单..

int * ptrInteger; /*We have put a * operator between int and ptrInteger to create a pointer.*/

这里ptrInteger是指向整数的指针。如果你了解这一点, 那么从逻辑上讲, 我们在声明指向函数的指针时应该没有任何问题problem
那么, 让我们首先看看..我们如何声明一个函数?例如,
int foo(int);

foo是一个返回int并接受一个int类型参数的函数。因此, 正如一个逻辑上的人会想到的那样, 通过在int和foo(int)之间放置一个*运算符应该创建一个指向函数的指针, 即
int * foo(int);

但是Oops..C运算符优先级在这里也起作用。因此, 在这种情况下, operator()将优先于运算符*。上面的声明将意味着–一个函数foo, 它的一个参数为int类型, 返回值为int *, 即整数指针。所以它做了一些我们不想做的事情。 ??
因此, 作为下一步的逻辑步骤, 我们必须以某种方式将运算符*与foo绑定。为此, 我们将使用()运算符更改C运算符的默认优先级。
int (*foo)(int);

而已。这里*运算符与foo一起使用, foo是一个函数名。它做了我们想要做的事情。
【如何声明一个指向函数的指针()】因此, 这并不像我们早先想的那么困难!

    推荐阅读