1、函数指针定义
函数声明:
int add(int a ,int b)
函数指针声明:
int (*func_ptr)(int , int)
2、函数指针赋值
//定义一个函数
int add(int a , int b)
{
return a+b;
}
//什么函数指针
int (*func_ptr)(int , int)
//赋值方式1:直接用函数名(推荐)
func_ptr = add;
//赋值方式2:显示取地址(效果相同)
fun_ptr = &add;
/***********
原因:函数名本身就代表函数的地址,所以add和&add是等价的
******/
3.通过函数指针调用函数
方式1 解引用调用
(*func_ptr)(3,5) 明确表示“调用指针指向的函数” //结果为8
方式2 直接调用(简化)
func_ptr(3,5) 编译器自动识别这是函数指针 //结果为8
//定义一个函数指针,指向add函数
int (*func_ptr)(int , int) = add;
//方式1:通过解引用调用(传统写法)
int result1= (*func_ptr)(3,5); //result1=8
//方式2:直接调用(现代写法,更常用)
int result2 = func_ptr(3,5); //result2=8
//两种方式完全等价!选你喜欢的即可。现代C代码更倾向于方式2:直接调用

1万+

被折叠的 条评论
为什么被折叠?



