不良的生活习惯让你多疾病(不良生活方式引起的疾病) 苹果手机怎么换输入法壁纸(苹果手机怎么换输入法) 推荐几个学习英语好用的软件 堡垒之夜在哪下载?(pc版堡垒之夜在哪下载) 山东省电力公司领导(山东省电力公司) 酶文化之生物复合酶(酶生物化学) 如何用微信查询北京地铁实时满载率(北京地铁客运量实时) 身体发肤受之父母不敢毁伤下一句(身体发肤受之父母) 如何去掉dedecms自带广告以及Power by dedecms 腰椎结核怎么护理?(腰椎结核怎么护理好) 2020年内蒙古师范大学文科录取分数线多少分?(内蒙古师范大学文科二本有什么专业) 独角仙幼虫怎么养(独角仙幼虫怎么养 新手视频) ii型糖尿病能彻底治愈吗(ii型糖尿病) 怎么用话费充值Q币(qq怎么用话费充值q币) 头发厚重适合什么发型(头发多的女生适合什么发型) 戴尔笔记本电脑一开机就蓝屏(戴尔笔记本电脑一开机就蓝屏怎么搞) 画素描如何避免匠气(如何避免绘画匠气) 1月28星座(1月28日是什么星座) PPT怎么讲自己做的模板导入自己做好的PPT里面(如何在已经做好的ppt里导入模板) 如何写好作文(如何写好作文的方法和技巧) 混凝土比例1:2:3一方需要多少吨沙子(混凝土比例) 凉拌黄花菜的做法(凉拌黄花菜的做法大全) 教师节贺卡图片简笔画(教师节贺卡图片简笔画图片) 《平凡的世界》读后感(求 平凡的世界 读后感 800字) 云顶之弈莫甘娜带什么装备(云顶之弈莫甘娜带什么装备最好) 《反垄断法》规定了几种垄断形式 如何处罚?(《反垄断法》规定了几种垄断形式,如何处罚决定) 食品安全歌谣20字(食品安全歌谣) 如何知道电视机尺寸的大小 一寸是多少厘米?(如何知道电视机尺寸的大小,一寸是多少厘米宽) 传统小吃“蛤蟆吐蜜"的馅料是什么?(传统小吃\) 陪玩多少钱一个小时(那女孩对我说说我是一个小偷) 苹果手机微信网络出错1004怎么办 如何解决(苹果手机注册微信显示网络出错1004) 动物之森如何让小动物搬家(动物之森如何让小动物搬家回家) 驱动精灵如何安装打印机驱动程序(如何安装打印机驱动程序) AI最常用的工具钢笔工具(ai钢笔工具组有哪些工具) 如何选择比较靠谱的理财平台(有哪些可靠的理财平台) 对学生的评价要多选题(对学生的评价) Excel公式:[1]使用rank函数实现去重复排序(excel中rank排序有重复) 儿童患了龋齿要怎么办(儿童患有龋齿怎么办) APP风险漏洞检测怎么做? 在线检测的详细步骤(手机app漏洞检测工具下载) U2外拍灯教程(u2摄影灯使用教程) 朴蔡琳老公(朴蔡琳) 王者荣耀如何设置不卡不发热(王者荣耀怎么设置不卡不发热) 乐趣文字聊天室网站(文字聊天室网站) 如何在kindle上买书?(怎样在kindleapp上买书) 电话英语是啥(电话英文是什么) 英雄联盟分辨率设置(英雄联盟分辨率设置错了怎么调回去) 三轮滑板车怎么玩?(三轮滑板车怎么玩技巧) 快乐星球冰柠檬张兆艺(张兆艺) 待处理财产损益的会计分录(待处理财产损益的会计分录怎么做) 怎样挽回破裂的婚姻(怎样挽回破裂的婚姻老公)
您的位置:首页 >综合精选 >

函数指针和指针函数用法和区别(函数指针和指针函数有啥区别)

导读 关于函数指针和指针函数用法和区别,函数指针和指针函数有啥区别这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一

关于函数指针和指针函数用法和区别,函数指针和指针函数有啥区别这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一起来看看吧!

1、函数指针和指针函数的区别:一、【函数指针】 在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。

2、可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。

3、 函数指针定义 函数类型(*指针变量名)(形参列表); “函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。

4、 例如: int (*f)(int x); double (*ptr)(double x); 在定义函数指针时请注意: 函数指针和它指向的函数的参数个数和类型都应该是—致的; 函数指针的类型和函数的返回值类型也必须是一致的。

5、 2、函数指针的赋值 函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。

6、 例如, int func(int x); /* 声明一个函数 */ int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

7、 3、通过函数指针调用函数 函数指针是通过函数名及有关参数进行调用的。

8、 与其他指针变量相类似,如果指针变量pi是指向某整型变量i的指针,则*p等于它所指的变量i;如果pf是指向某浮点型变量f的指针,则*pf就等价于它所指的变量f。

9、同样地,*f是指向函数func(x)的指针,则*f就代表它所指向的函数func。

10、所以在执行了f=func;之后,(*f)和func代表同一函数。

11、 由于函数指针指向存储区中的某个函数,因此可以通过函数指针调用相应的函数。

12、现在我们就讨论如何用函数指针调用函数,它应执行下面三步: 首先,要说明函数指针变量。

13、例如:int (*f)(int x); 其次,要对函数指针变量赋值。

14、 例如: f=func; (func(x)必须先要有定义) 最后,要用 (*指针变量)(参数表);调用函数。

15、 例如: (*f)(x);(x必须先赋值) 【例】任意输入n个数,找出其中最大数,并且输出最大数值。

16、 main() { int f(); int i,a,b; int (*p)(); /* 定义函数指针 */ scanf("%d",&a); p=f; /* 给函数指针p赋值,使它指向函数f */ for(i=1;i<9;i++) { scanf("%d",&b); a=(*p)(a,b); /* 通过指针p调用函数f */ } printf("The Max Number is:%d",a) } f(int x,int y) { int z; z=(x>y)?x:y; return(z); } 运行结果为: 343 -45 4389 4235 1 -534 988 555 789↙ The Max Number is:4389 二、【指针函数】 一个函数不仅可以带回一个整型数据的值,字符类型值和实型类型的值,还可以带回指针类型的数据,使其指向某个地址单元。

17、 返回指针的函数,一般定义格式为: 类型标识符 *函数名(参数表) int *f(x,y); 其中x,y是形式参数,f是函数名,调用后返回一个指向整型数据的地址指针。

18、f(x,y)是函数,其值是指针。

19、 如:char *ch();表示的就是一个返回字符型指针的函数,请看下面的例题: 【例】将字符串1(str1)复制到字符串2(str2),并输出字符串2. #include "stdio.h" main() { char *ch(char *,char *); char str1[]="I am glad to meet you!"; char str2[]="Welcom to study C!"; printf("%s",ch(str1,str2)); } char *ch(char *str1,char *str2) { int i; char *p; p=str2 if(*str2==NULL) exit(-1); do { *str2=*str1; str1++; str2++; }while(*str1!=NULL); return(p); } 通过分析可得: 函数指针是一个指向函数的指针,而指针函数只是说明他是一个返回值为指针的函数, 函数指针可以用来指向一个函数。

本文分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!

最新文章