c++ 声明函数指针,并把函数赋值给函数指针,利用指针调用函数
时间: 2025-06-01 21:38:58 浏览: 13
### C++ 中声明函数指针并调用函数
在 C++ 中,函数指针是一种特殊的指针类型,用于存储函数的地址。可以通过函数指针间接调用对应的函数[^1]。
#### 声明函数指针
要声明一个函数指针,其语法如下所示:
```cpp
return_type (*pointer_name)(parameter_list);
```
其中 `return_type` 是函数返回值的类型,`pointer_name` 是指针的名字,而 `parameter_list` 则表示该函数接受的参数列表及其类型[^3]。
例如,如果有一个函数 `add` 接受两个整数作为输入,并返回它们的和,则可以这样声明它的函数指针:
```cpp
int add(int a, int b) {
return a + b;
}
// 声明一个指向返回 int 并接收两个 int 参数的函数的指针
int (*func_ptr)(int, int);
```
#### 将函数赋值给函数指针
一旦声明了函数指针,就可以将其初始化为某个具体函数的地址。这通常通过简单的赋值操作完成。由于函数名本身代表了一个函数的入口地址,因此可以直接将函数名赋值给相应的函数指针[^2]。
继续上面的例子:
```cpp
func_ptr = add; // 或者写成 func_ptr = &add; (& 可选)
```
注意,在这里既可以省略取址运算符 (`&`) 来简化书写,也可以显式写出 [`func_ptr = &add`],两者效果相同。
#### 使用函数指针调用函数
当成功把某一特定函数分配给了我们的函数指针之后,便能够像平常那样利用此指针对应的目标函数执行实际的任务。也就是说,只要按照常规方式提供必要的实参即可实现对目标方法的有效访问[^1]。
还是以上述例子为例演示如何借助已设置好的 `func_ptr` 进行计算两数值之合的操作过程:
```cpp
#include <iostream>
using namespace std;
int main() {
int num1 = 5, num2 = 7;
cout << "Result via function pointer: " << func_ptr(num1, num2) << endl;
return 0;
}
```
在这个程序片段里,最终会打印出结果 `"Result via function pointer: 12"` ,表明我们已经顺利经由函数指针完成了预期的功能调用行为。
### 完整代码示例
以下是完整的代码展示整个流程从头到尾是如何工作的:
```cpp
#include <iostream>
using namespace std;
// 函数定义
int multiply(int x, int y){
return x * y;
}
int main(){
// 声明函数指针
int(*pFunc)(int,int);
// 给函数指针赋值
pFunc=multiply;
// 使用函数指针调用函数
cout<<pFunc(4,5)<<endl; // 输出应该是 '20'
return 0;
}
```
阅读全文
相关推荐


















