用函数指针传参
时间: 2023-07-05 18:25:57 浏览: 100
函数指针是指向函数的指针变量,可以将函数指针作为函数参数传递给另一个函数,从而实现回调函数的功能。
例如,假设有一个函数 `int calculate(int a, int b, int(*func)(int, int))`,它接受两个整数和一个函数指针作为参数。这个函数将使用传递的函数指针来对两个整数进行计算并返回结果。
函数指针的语法如下:
```
返回类型 (*指针变量名)(参数列表)
```
例如,定义一个指向函数的指针变量 `p`,它指向一个函数,这个函数接受两个整数并返回它们的和:
```
int (*p)(int, int) = ∑
```
其中 `&sum` 是函数 `sum` 的地址。现在可以使用指针变量 `p` 来调用函数 `sum`:
```
int result = (*p)(3, 4); // 调用 sum 函数,返回 7
```
在函数 `calculate` 中,可以将一个函数指针作为参数传递,例如:
```
int calculate(int a, int b, int(*func)(int, int)) {
int result = func(a, b);
return result;
}
```
然后可以将一个函数作为参数传递给 `calculate` 函数,例如:
```
int sum(int a, int b) {
return a + b;
}
int main() {
int result = calculate(3, 4, &sum); // 计算 3 + 4,返回 7
return 0;
}
```
阅读全文