C语言-函数指针

来源:互联网 发布:mac香港专柜价格 编辑:程序博客网 时间:2024/06/09 20:26

函数指针

函数指针是指向函数的指针变量。
函数指针本身首先应该是指针变量,只不过该指针变量指向函数。

C在编译的时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他变量一样。

用途: 调用函数和做函数的参数

函数指针的使用

其中void代表函数的返回值,fun_p:函数指针的名称,char* msg, char* title: 函数的参数列表。

void msg(char* msg,char* title){    //do something}void main(){    /*函数指针    void代表函数的返回值    fun_p:函数指针的名称    char* msg, char* title: 函数的参数列表    */    void(*fun_p)(char* msg, char* title) = msg;      fun_p("消息内容", "标题");    getchar();}  

实例

定义了一个函数指针,可传入不同的函数,从而实现加饭、减法,亦可进行扩展,实现乘法、除法等,知道确保函数的参数和返回值相同即可。

int add(int a, int b){    return a + b;}int minus(int a, int b){    return a - b;}  //此函数需要传递一个函数指针参数//可以执行不同的函数void msg2(int(*func_p2)(int a,int b),int m,int n){    //执行一段代码    m++;    //执行回调函数    int r = func_p2(m, n);    printf("%d\n", r);}  void main(){    msg2(add, 10, 20); //加法    msg2(minus, 50, 10); //减法}  

打印结果

3141
原创粉丝点击