c语言 函数指针

来源:互联网 发布:南达科他级战列舰数据 编辑:程序博客网 时间:2024/06/09 17:16

定义原型:

返回类型 (*指针名)参数列表

例如:

#include <stdio.h>//以下是函数指针的两种声明办法,第一种是在形参列表中声明,第二种是在外部声明int ff(int(*p)(int,int),int a,int b)//原始写法,在函数ff的参数列表中定义函数指针p,阅读不便{    return p(a,b);}//改进写法 易懂typedef int(*Pfunc)(int,int);//定义函数指针类型Pfunc,同时声明了原型 返回类型int 形参列表为两个intint f(Pfunc p,int a,int b) //函数f的参数列表, 包含一个Pfunc类型的函数指针p,两个int{    return p(a,b);}int add(int a,int b)//加法函数{    printf("加法函数add被调用:");    return a+b;}int sub(int a,int b)//减法函数{    printf("减法函数sub被调用:");    return a-b;}void main(){               //函数指针初步应用    int a=1,b=2;    printf(" %d+%d=%d\n",a,b,f(add,a,b));    printf(" %d-%d=%d\n",a,b,f(sub,a,b));    printf(" %d+%d=%d\n",a,b,ff(add,a,b));    printf(" %d-%d=%d\n",a,b,ff(sub,a,b));}

运行结果:
加法函数add被调用: 1+2=3
减法函数sub被调用: 1-2=-1
加法函数add被调用: 1+2=3
减法函数sub被调用: 1-2=-1

说明两种定义方式是等效的

参考:https://zhidao.baidu.com/question/363328873.html

原创粉丝点击