仪表保护箱如何分类及应用(仪表保护箱如何分类及应用图片) 羊角梳子和牛角梳子哪个更好(银梳子和牛角梳哪个好) 进出口贸易怎么做(外贸出口流程) kingsoft是什么意思可以删除吗(kingsoft可以删除) 淘宝试用攻略(淘宝试用攻略在哪里看) 婴儿闹夜有什么好办法(婴儿闹夜有什么好办法缓解) 如何重新激活淘宝店铺及发布宝贝(如何重新激活淘宝店铺及发布宝贝的权限) 冲锋衣如何选购全攻略(冲锋衣购买指南) 蓝色生死恋演员表恩熙小时候(蓝色生死恋演员表) QQ如何打开电台随机播放(QQ音乐怎么开电台) 如何怎么下载安装steam平台(steam平台游戏安装教程) 大地保险车险报案电话(大地保险车险怎么样) 武昌鱼清蒸的做法(武昌鱼清蒸的做法几分钟) 常用的招聘网站有哪些(现在招聘都用什么网站) 雨爱吉他谱弹唱原版(雨爱吉他谱简单版) 海带打结的作用(海带打结的作用原理) 电脑怎么制作表格新手 初学者(怎样制作表格) 暴走英雄坛丐帮入门任务攻略流程(暴走英雄坛丐帮入门任务攻略流程视频) 最简单的iPhone铃声设置方法(iphone铃声怎样设置) 如何做好一个保险律师(如何做好一个保险律师助理) 手阅怎么进行提现账号设置(掌阅能提现吗) 联想A366T获取Root权限详细图文教程 一个人笔仙游戏怎么玩(笔仙游戏怎么玩图片) 手动蝶阀怎么看开关(手动蝶阀怎么看开关工具) 如何下载【武林外传】(武林外传在哪里可以免费下载) 烫金字怎么做(烫金字) 如何让茶楼加盟店生意更好?(如何让茶楼加盟店生意更好些) 如何判断qq是否隐身(怎么看QQ是否隐身) 80平米两室一厅装修(8度) 瓷砖的色彩应该如何搭配?(瓷砖的色彩应该如何搭配好看) 微观经济学的定义是什么(微观经济学的定义) 书包背带怎么系(书包背带怎么系不会掉) 研究发现与巴顿病有关的蛋白质对于产生新的溶酶体至关重要 研究人员开发了一种新型抗炎药 NLRP1 和 NLRP3 炎症小体抑制剂 声明概述了心脏肿瘤护理和研究方面的不平等 全心全意为人民服务(全心全意) 360手机助手怎么下载(360手机助手怎么下载软件到电脑) 怀孕期间使用 THC 与胎儿发育的变化有关 研究发现空气质量差会以多种方式影响心理健康 研究揭示了后来患上幼年特发性关节炎的儿童肠道细菌的差异 研究证明微生物群移植疗法对干细胞移植和白血病患者的安全性 热量:人体能承受多少热量 了解甲型 乙型 丙型 丁型和戊型肝炎之间的区别 蜱虫季节即将开始 它们出现在新的地方 怎么做松鼠桂鱼 汉语拼音的音节是什么(汉语拼音中什么叫音节) qq如何查看我的勋章墙(怎么看qq我的勋章墙) 牡丹鹦鹉的主要食物有哪些?(牡丹鹦鹉的主要食物有哪些呢) 求发财路子(求发财之路) 怎么在sci上发表文章(怎么能发表sci)
您的位置:首页 >综合知识 >

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

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

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

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); } 通过分析可得: 函数指针是一个指向函数的指针,而指针函数只是说明他是一个返回值为指针的函数, 函数指针可以用来指向一个函数。

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

标签:

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

最新文章