函数指针作为函数返回类型
时间: 2023-10-12 18:19:37 浏览: 89
在C语言中,函数指针是指向函数的指针变量,它可以存储函数的入口地址,使得我们可以通过该指针变量来调用该函数。在C语言中,函数指针可以作为函数的参数和返回值。函数指针作为函数返回类型,其实就是函数返回一个函数指针。
下面是一个函数返回一个函数指针的例子:
```c
#include <stdio.h>
int add(int x, int y) {
return x + y;
}
int sub(int x, int y) {
return x - y;
}
int (*get_func_ptr(char op))(int, int) {
if (op == '+') {
return add;
} else if (op == '-') {
return sub;
} else {
return NULL;
}
}
int main() {
int a = 10, b = 5;
char op = '+';
int (*func_ptr)(int, int) = get_func_ptr(op);
if (func_ptr != NULL) {
printf("%d %c %d = %d\n", a, op, b, func_ptr(a, b));
}
return 0;
}
```
在上面的例子中,`get_func_ptr`函数接收一个字符参数`op`,根据`op`的值返回相应的函数指针。在`main`函数中,我们首先定义了两个整型变量`a`和`b`,然后定义了一个字符变量`op`,并将其赋值为`'+'`。然后我们调用`get_func_ptr`函数,将`op`作为参数传递进去,获取到相应的函数指针,并将其赋值给`func_ptr`指针变量。最后,我们通过`func_ptr`指针变量调用了相应的函数,并输出了结果。
需要注意的是,在定义函数指针类型时,需要注意函数指针的参数类型和返回类型,以及函数指针变量的名称和参数列表。在上面的例子中,我们定义了一个函数指针类型`int (*func_ptr)(int, int)`,表示该指针变量可以指向参数为两个整型变量且返回值为整型的函数。
阅读全文