您现在的位置是:首页 > 综合 > 精选知识 > 正文
指针函数和函数指针的区别图文详解(2024年07月19日函数指针和指针函数有啥区别)
发布时间:2024-07-19 09:10:03平飘聪来源:
今天火狐为大家解答以上的问题。指针函数和函数指针的区别图文详解,2024年07月19日函数指针和指针函数有啥区别相信很多小伙伴还不知道,现在让我们一起来看看吧!
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); } 通过分析可得: 函数指针是一个指向函数的指针,而指针函数只是说明他是一个返回值为指针的函数, 函数指针可以用来指向一个函数。
本文就为大家分享到这里,希望小伙伴们会喜欢。
标签:
猜你喜欢
- 指针函数和函数指针的区别图文详解(2024年07月19日函数指针和指针函数有啥区别)
- 2024年07月19日简笔画娃娃简单(2024年07月19日简笔画娃娃)
- 二十四个英文字母音标发音(2024年07月19日26个英文字母的音标)
- 2024年07月19日(2024年07月19日cdtv1)
- 今天是2024年07月18日thursday(2024年07月19日流水席)
- cad怎么样调出工具栏(2024年07月19日cad怎么调出工具栏)
- 往来账啥意思(2024年07月19日什么是往来账)
- 2024年07月桌面日历壁纸(2024年07月19日中小型犬)
- 热门竞技小说排行榜(2024年07月19日竞技小说)
- 清蒸螃蟹大概多久时间(2024年07月19日清蒸螃蟹需要多长时间)
- 若如初见的下一句是(2024年07月19日如若初见是什么意思)
- 转述句是啥句(2024年07月19日转述句是什么意思)
- 2024年4月19号(2024年07月19日宴请)
- 垃圾分类的施行(2024年07月19日垃圾分类的分类原则)
- 即期汇率1a=5b(2024年07月19日即期汇率什么意思)
- 洛克王国绿色幸运钥匙(2024年07月19日洛克王国绿色命运之钥怎么得)
- 定义数组时数组名不能以()作为开始符号(2024年07月19日数组定义后数组名的值是一个地址可以被修改)
- 房间净高规范(2024年07月19日什么是房间净高)
- 男女闺蜜网名二人仙气可爱(2024年07月19日男女闺蜜网名)
- 我的世界喷气背包怎么飞(2024年07月19日我的世界喷气背包怎么充电)
最新文章
- 指针函数和函数指针的区别图文详解(2024年07月19日函数指针和指针函数有啥区别)
- 瑞鹄模具:7月18日获融资买入699.32万元,占当日流入资金比例11.19%
- 大地海洋:7月18日获融资买入74.27万元,占当日流入资金比例38.65%
- 为什么澳大利亚大型房地产投资者要出售五套出租房屋
- 40 万美元以下的经济适用房吸引买家
- 阿德莱德祖父以 127.5 万美元的价格拍卖孙子们未来的房子
- Glitter Strip 派对豪宅在拍卖前以高价售出
- 音响之王斥资 1000 万美元为历史豪宅增添新设施
- 趣睡科技:7月18日获融资买入37.60万元
- 丽珠集团:7月18日获融资买入832.92万元,占当日流入资金比例9.35%
- 狂热队的凯特琳·克拉克以 19 次助攻打破了 WNBA 的比赛助攻记录
- NBA 2K25 夏季联赛:GG Jackson Scotty Pippen Jr. 带领灰熊队
- NBA 2K25 夏季联赛:大卫·罗迪罚球助太阳队取胜
- 兆龙综合布线解决方案,助力传化公路港打造数字化、智能化的物流枢纽
- NBA 夏季联赛:第 11 天的杰出球员
- NBA 2K25 夏季联赛:勇士队从未落后骑士队
- 苏州市工信局副局长张文彪一行调研佳禾食品
- 我武生物连续2日融资买入额增长率超50%,多头加速建仓
- 牧高笛:7月18日获融资买入18.63万元
- 2024年07月19日简笔画娃娃简单(2024年07月19日简笔画娃娃)
- 乐不思蜀现在指什么意思(2024年07月19日乐不思蜀的意思)
- 《溜索》阿城百度百科(2024年07月19日溜索阿城原文)
- 二十四英文字母音标(2024年07月19日英文26个字母的音标)
- 二十四个英文字母音标发音(2024年07月19日26个英文字母的音标)