详细说明函数指针

来源:互联网 发布:优学院软件下载 编辑:程序博客网 时间:2024/05/16 05:12
再次说明下,函数指针,是个指针--->它指向函数,既然是指针,那麽先回顾下指针的是怎麽定义的,然后再来说明函数指针,这样比较容易理解一些。
指针的定义,假设需要定义一个指针,我们需要明确一下两点,
(1)需要定义一个什麽类型的指针
(2)指针的名字叫什麽。
假设现在需要这麽一个功能,通过指针打印一个int类型的数据。那麽,首先定义一个int 类型的指针(为什麽是int类型的指针,因为是int类型的数据,假设使用float*,将会出现解析错误),指针名为 p,然后将通过指针p打印,p存放的内容。听起来很彆扭,下面是实际代码:
int * p; 
int num ;
p =  # 
    printf("*p  = %d",*p);
从上面可以看到,定义一个指针,需要定义它的类型!!!然后是它的名称。
函数指针,函数指针前面已经说了,是个指针。那麽它应该怎麽定义呢?是否跟指针的一样一样的?指针变量的形式;
函数的返回类型(*函数指针名)(参数列表);
是的,就是这样。。。这里可以清楚的看到,函数指针压根就不需要定义是什麽类型的函数指针,而且它这个定义有点像函数!也就是说当看到这麽一个语句 void(*fun)(int,int)的时候,它是一个指针!!!,意思是函数变量名为fun的这麽一个函数指针。大家都知道程序员比较懒,不然也不会现什麽i++ ,++i ,这些东西来搞脑子了。函数指针长成这个样子,程序员当然受不来了,必须书写简单些,于是出现了,typedef  void(*fun) (int , int) ,将它定义成一个函数指针类型。。
typedef  void(*fun) (int , int) //这句话,就变成了当需要使用这个函数指针类型。
那麽当定义函数指针类型的时候,
fun  funtion1; //fun是指针类型,funtion是函数指针名;
到了这裡,我们就可以将funtion1当做普通的指针一样就可以了,只不过这个指针与普通的指针不太一样,这个指针传递的函数地址。
下面是一个函数指针的例子,一个是直接使用int(*funp)(int ,int),另一个是定义函数指针类型,这两个都是实现一样的功能:
#include <stdio.h>
#include <stdlib.h>

typedef int(*funp)(int ,int); //定义一个函数指针,并改名为funp

int add(int a ,int b){
int sum =a+b;


return sum;
}


int callfun1(int(*funp)(int ,int),int i,int j){

int getnum= funp(i,j);

printf("getnum 1= %d",getnum);
}


int callfun2(funp fun ,int i,int j){

int getnum= fun(i,j);

printf("getnum 2= %d",getnum);
}


int main(){
int num1 = 4;
int num2 = 8;

callfun1(add,num1,num2);
callfun2(add,num1,num2);

getchar();
return 0;
}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 搜索qq号搜不到怎么办 微信号手机号码换了怎么办 起诉以后没有被告人住址怎么办 农村老人走丢了怎么办 读在职博士工作单位不支持怎么办 两证合一后国税怎么办 杭州的发票丢了怎么办 小车登记证丢了怎么办 个体户地税逾期未申报怎么办 公司社保本丢了怎么办 社保红本子掉了怎么办 三证合一后逾期怎么办 个体执照没办国税地税怎么办 丰巢APP注册没工牌号怎么办 农业银行k宝证书过期怎么办 个体户网上申报税没定期怎么办 遇到不给开票的商户怎么办 奶茶店电脑下单怎么办 个体户营业执照注销怎么办清税业务 注册公司没有办公地点怎么办 变更莒业执照法人怎么办手续 欠了几十万贷款怎么办 杭州公司跨区迁址怎么办 公司同市内跨区迁址怎么办 合同写错了字怎么办 农行卡转工行卡怎么办 外地人在北京交社保退休怎么办 身份证掉了单位宿舍怎么办居住证 广州租住单位宿舍怎么办居住证 公司u盾丢了怎么办 北京办了居住卡怎么办延期 商铺被陌生人注册左公司怎么办 营业执照年检登录密码忘了怎么办 欠人家钱没钱还怎么办 欠钱实在没钱还怎么办 党关系丢了10年怎么办? 离婚后生孩子怎么办出生证明 注册公司没有注册地址怎么办 银行流水不够2倍怎么办 个体户小店怎么办五险 姓和名五行相克怎么办?