如何定义一个函数指针变量
时间: 2023-07-13 20:37:58 浏览: 89
定义一个函数指针变量需要指定函数指针类型和变量名,语法如下:
```
返回类型 (*指针变量名)(参数列表)
```
其中,`返回类型` 是指函数返回值的数据类型;`指针变量名` 是指指针变量的名称;`参数列表` 是指函数的参数类型列表,多个参数之间用逗号分隔。
例如,如果有一个函数 `add`,它接收两个整数参数并返回它们的和。那么可以定义一个函数指针类型 `int (*)(int, int)`,然后用该类型定义一个函数指针变量 `funcPtr`,示例代码如下:
```c
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int (*funcPtr)(int, int); // 定义一个函数指针变量
funcPtr = add; // 将函数的入口地址赋值给函数指针变量
int result = (*funcPtr)(2, 3); // 通过函数指针调用函数
printf("%d\n", result);
return 0;
}
```
在这个例子中,定义了一个函数 `add`,它接收两个整数参数并返回它们的和。然后,定义了一个函数指针变量 `funcPtr`,它的类型是 `int (*)(int, int)`,即指向返回值为整型、接收两个整型参数的函数的指针类型。接着,将 `add` 函数的入口地址赋值给 `funcPtr`,最后通过 `(*funcPtr)(2, 3)` 调用 `add` 函数并将结果存储在变量 `result` 中。
需要注意的是,函数指针变量可以在定义时进行初始化,也可以在后面进行赋值。但是,一定要确保函数指针变量指向的函数和函数指针类型是匹配的,否则会导致编译错误。
阅读全文