函数指针是指向函数的指针,它可以用来调用函数。指针函数是指返回指针的函数,它可以用来获取某个变量的地址。
在C语言中,函数指针和指针函数的定义如下:
```c
// 函数指针的定义
int (*func_ptr)(int); // func_ptr是一个指向函数的指针,该函数接受一个整数参数并返回一个整数
// 指针函数的定义
int *(*ptr_func)(int); // ptr_func是一个指向指针函数的指针,该指针函数接受一个整数参数并返回一个整数指针
```
下面是一些使用函数指针和指针函数的例子:
```c
#include <stdio.h>
// 函数指针的使用
int add(int a, int b) {
return a + b;
}
int main() {
int (*func_ptr)(int, int) = add; // 将add函数的地址赋值给func_ptr
int result = func_ptr(1, 2); // 通过func_ptr调用add函数并输出结果3
printf("%d\n", result);
return 0;
}
// 指针函数的使用
int get_sum(int a, int b) {
int sum = a + b;
return ∑ // 返回a+b的地址
}
int main() {
int *(*ptr_func)(int, int) = get_sum; // 将get_sum函数的地址赋值给ptr_func
int *result = (*ptr_func)(1, 2); // 通过ptr_func调用get_sum函数并输出结果4
printf("%d\n", *result); // 通过解引用result获取地址中的值并输出结果4
return 0;
}
```