码迷,mamicode.com
首页 > 其他好文 > 详细

函数指针

时间:2018-10-07 23:27:38      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:一个   返回   ret   形式   函数   不同   其他   span   地址   

1、基本的函数指针

定义:函数存储空间的起始地址(入口地址)成为这个函数的指针

写法: int (*p)(int x, int y)
            这里指的就是定义了一个指向函数的指针变量p
示例:int max(int,int);
           int (*p)(int,int);
           p=max;
           int num;
           num=(*p)(1,2);  // 此处与num=max(1,2)的效果一致。
                                    // max内的具体函数内容此处不写
 
注意:1、int (*p)(int x, int y) 不能写成 int *p(int x, int y),()的运算级别比*高
                 如果写成去掉括号的形式,则变成函数p(int x, int y)的返回值是 int型的指针
           2、此例子中,p只能是指向函数起始地址,但是不能进行运算,不能通过运算进行执行指令的偏移
           3、指针变量不意味着它可以指向任何变量,返回值类型和形参个数与形参类型要一样才可行
 
2、函数指针作形参
把指向函数指针的函数作为形参:每次函数调用其他函数时,可以采用一个函数,调用不同的函数
                                                       这种做法有利于结构化程序的开发
int fun( int x, int y,int (*p)(int, int) )
int max(int, int);
int min(int, int);
fun(1,2,max);   // 进行指针函数的传递,传递函数的入口地址
……
int fun(int x, int y, int (*p)(int, int))
{
int result;
        result=(*p)(x,y);  // 在函数中使用传入的指针函数
        return 0;
}

函数指针

标签:一个   返回   ret   形式   函数   不同   其他   span   地址   

原文地址:https://www.cnblogs.com/lnleelove/p/9751820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!