函数指针
跟变量一样,函数在内存中也有地址,这就意味着指针也可以指向一个函数。要让一个指针指向一个函数,必须声明一个函数指针。函数指针的声明与函数的声明类似,但是不必使用函数名,函数名的位置替换成了一个指针。函数指针的声明格式为:函数返回值类型 (*函数指针名)(函数参数类型列表)
,例如double (*pF)(int)
。
当声明了函数指针后就可以将函数赋予这个指针,并且这个指针可以完成函数调用的功能。可参考以下示例。
// 定义一个函数
double some_function(int a) { ... }
// 声明一个可以指向以上函数的函数指针
double (*pF)(int);
// 将函数赋予函数指针
pF = some_function;
// 使用指针来调用函数
(*pF)(5);
// 实际上C++可以用以下方式来使用指针调用函数,但往往不推荐
pF(5);