1.函数指针的定义
1. 本质:函数指针的本质是一个指针,指向的是一个具有相同形参,相同返回类型的函数。
函数名就表示函数的入口地址。
2. 定义函数指针的格式
返回类型 (*函数指针变量名)(形参列表) = 函数名;
3. 如何使用函数指针
将函数指针变量名当成一个函数名使用即可。
#include <stdio.h>
int add_func(int a, int b)
{
return a + b;
}
int sub_func(int a, int b)
{
return a - b;
}
// 回调函数:函数指针作为函数的形参,
int alogl(int a, int b, int (*func_p)(int a, int b))
{
return func_p(a, b);
}
int main(int argc, const char *argv[])
{
// 定义一个函数指针
int (*func_p)(int a, int b);
func_p = add_func; // 函数指针指向add_func函数
// 将函数指针变量名当成函数名使用即可
printf("100 + 200 = %d\n", add_func(100,200));
printf("100 + 200 = %d\n", func_p(100,200));
func_p = sub_func; // 修改函数指针的指向,指向sub_func函数
printf("100 - 200 = %d\n", sub_func(100,200));
printf("100 - 200 = %d\n", func_p(100,200));
printf("100 + 200 = %d\n", alogl(100, 200, add_func));
printf("100 - 200 = %d\n", alogl(100, 200, sub_func));
return 0;
}