定义一个指向函数的指针
时间: 2023-09-12 15:10:45 浏览: 47
在 C 语言中,可以通过以下方式定义一个指向函数的指针:
```c
return_type (*function_pointer)(parameter_list);
```
其中,`return_type` 是函数的返回类型,`parameter_list` 是函数的参数列表,`function_pointer` 是指向函数的指针变量名。
例如,以下代码定义了一个指向函数的指针 `p`,它可以指向返回类型为 `int`,接受两个 `int` 类型参数的函数:
```c
int add(int a, int b) {
return a + b;
}
int (*p)(int, int) = &add;
```
这里,`p` 是一个指向函数的指针变量,它被赋值为 `&add`,即函数 `add` 的地址。接下来,可以通过 `p` 来调用 `add` 函数:
```c
int result = (*p)(2, 3); // 调用 add(2, 3),结果为 5
```
相关问题
C语言定义一个指向函数指针的数组
C语言中可以定义一个指向函数的数组,这种数组可以指向一系列函数,可以用它来实现动态函数调用。它的声明格式如下:typedef returntype (*arrayname) (parameter list),其中returntype为函数返回类型,arrayname为数组名,parameter list为函数参数列表。
定义一个函数指针·1
定义一个函数指针可以通过以下方式实现:
```c
// 定义一个函数指针类型
typedef int (*function_p)(int a);
// 定义一个函数
int add(int a, int b) {
return a + b;
}
// 定义一个函数指针变量并赋值
function_p fun = add;
// 使用函数指针调用函数
int result = fun(1, 2);
```
在上述代码中,我们首先使用`typedef`定义了一个函数指针类型`function_p`,它指向一个返回值为`int`,参数为`int`的函数。然后我们定义了一个函数`add`,它接受两个`int`类型的参数并返回它们的和。接着我们定义了一个函数指针变量`fun`,并将其赋值为`add`函数的地址。最后,我们使用函数指针调用`add`函数,并将结果存储在`result`变量中。