在 c++++ 中,函数指针是指向函数的变量,能动态地将函数作为参数传递或存储。其语法为:类型名称 * 函数名。分配时,使用函数指针地址,调用时解引用它。例如,使用函数指针计算最大值时,通过分配函数指针并调用它进行计算。
C++ 中函数指针的工作原理
在 C++ 中,函数指针是一种指向函数的变量。它允许我们动态地将函数作为参数传递或存储在数据结构中。
语法
函数指针的声明类似于常规函数,但类型名称后跟一个星号 (*):
<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/58423.html" target="_blank">typedef</a> void (*FunctionPointer)(int);
分配
我们可以像普通指针一样为函数指针分配函数地址:
FunctionPointer fp = &myFunction;
调用
我们可以通过解引用函数指针来调用它:
fp(10);
实战案例
让我们考虑一个使用函数指针计算两个数字最大值的程序:
#include <iostream>
using namespace std;
// 最大值函数
int max(int a, int b) {
return a > b ? a : b;
}
// 函数指针比较函数
int compare(int a, int b, int (*fp)(int, int)) {
return fp(a, b);
}
int main() {
// 分配函数指针并调用它来计算两数的最大值
int (*fp)(int, int) = &max;
int result = compare(5, 10, fp);
// 打印结果
cout << "最大值:" << result << endl;
return 0;
}