C程序设计教案332课时——指向函数的指针.docx

上传人:lao****ou 文档编号:405742 上传时间:2023-10-24 格式:DOCX 页数:6 大小:20.74KB
下载 相关 举报
C程序设计教案332课时——指向函数的指针.docx_第1页
第1页 / 共6页
C程序设计教案332课时——指向函数的指针.docx_第2页
第2页 / 共6页
C程序设计教案332课时——指向函数的指针.docx_第3页
第3页 / 共6页
C程序设计教案332课时——指向函数的指针.docx_第4页
第4页 / 共6页
C程序设计教案332课时——指向函数的指针.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C程序设计教案332课时——指向函数的指针.docx》由会员分享,可在线阅读,更多相关《C程序设计教案332课时——指向函数的指针.docx(6页珍藏版)》请在第一文库网上搜索。

1、教案序号033周次授课形式新授授课章节名称指向函数的指针教学目的理解指向函数的指针教学重点学会使用指向函数的指针教学难点学会使用指向函数的指针使用教具机房课外作业课后体会授课主要内容 8.5.1什么是函数指针 如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。 8.5.1什么是函数指针 可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。例如:int(*p)(int,int);定义P是指向函数的指针变量,它可以指向类型为整型且有两个整型参数的函数。P的类型用int(*)(int,int)

2、表示 8.5.2用函数指针变量调用函数例8.22用函数求整数a和b中的大者。解题思路:定义一个函数max,实现求两个整数中的大者。在主函数调用max函数,除了可以通过函数名调用外,还可以通过指向函数的指针变量来实现。分别编程并作比较。(1)通过函数名调用函数inc1udeintmain()intmax(int,int);inta,b,c;Printf(p1easeenteraandb:);scanf(z,%d,%d,&a,&b);c=max(a,b);printf(%d,%d,max=%dn*,a,b,c);return0;)intmax(intx,inty)intz;if(xy)z=x;e1

3、sez=y;return(z);)(2)通过指针变量访问它所指向的函数#inc1udeintmainOintmax(int,int);int(*p)(int,int);inta,b,c;p=max;printf(z,p1easeenteraandb:);scanf(%d,%d,&a,&b);c=(*p)(a,b);printf(%d,%d,max=%dn”,a,b,c);returnO;)8.5.3怎样定义和使用指向函数的指针变量定义指向函数的指针变量的一般形式为数据类型(*指针变量名)(函数参数表列);如int(*p)(int,int);p=max;对=max(a,b);错p+n,p+,p一

4、等运算无意义例8.23输入两个整数,然后让用户选择1或2,选1时调用InaX函数,输出二者中的大数,选2时调用min函数,输出二者中的小数。解题思路:定义两个函数InaX和min,分别用来求大数和小数。在主函数中根据用户输入的数字1或2,使指针变量指向InaX函数或Inin函数。inc1udeintmain()intmax(int,int);intmin(intx,inty);int(*p)(int,int);inta,b,c,n;scanf(z,%d,%d,z,&a,&b);scanf(i*%dt,&n);if(n=1)p=max;e1seif(n=2)p-min;C=(*p)(a,b);p

5、rintf(z,a=%d,b=%dn”,a,b);if(n=1)printf(ax=%dnzz,c);e1sePrintf(min=%dn”,c);return0;)intmax(intx,inty)intz;if(xy)z=x;e1sez=y;return(z);)intmin(intx,inty)intz;if(x 8.5.4用指向函数的指针作函数参数 指向函数的指针变量的一个重要用途是把函数的地址作为参数传递到其他函数 指向函数的指针可以作为函数参数,把函数的入口地址传递给形参,这样就能够在被调用的函数中使用实参函数 8.5.4用指向函数的指针作函数参数intmain()fun(f1,f

6、2)voidfun(int(*x1)(int),int(*x2)(int,int)inta,b,i=3,j=5;a=(*x1)(i);b=(*x2)(i,j);例8.24有两个整数a和b,由用户输入1,2或3。如输入1,程序就给出a和b中大者,输入2,就给出a和b中小者,输入3,则求a与b之和。解题思路:与例8.23相似,但现在用一个函数fun来实现以上功能。inc1udeintmain()voidfun(intx,inty,int(*p)(int,int);intmax(int,int);intmin(int,int);intadd(int,int);inta=34,b=-21,n;Prin

7、tf(p1easechoose1,2or3:);SCanf(%d,&n);if(n=1)fun(a,b,max);e1seif(n=2)fun(a,b,min);e1seif(n=3)fun(a,b,add);return0;intfun(intx,inty,int(*p)(int,int)intresout;resout=(*p)(x,y);printf(%dnw,resout);)intmax(intx,inty)intz;if(xy)z=x;e1sez=y;printf(ax=z,);return(z);intfun(intx,inty,int(*p)(int,int)intresout

8、;resout=(*p)(x,y);printf(ii%dnt,resout);intmax(intx,inty)intz;if(xy)z=x;e1sez=y;PrintfCmax=*);return(z);intfun(intx,inty,int(*p)(int,int)intresu1t;resu1t=(*p)(x,y);printf(ii%dnt,resu1t);)intmax(intx,inty)intz;if(xy)z=x;e1sez=y;Printf(max=);return(z);intmin(intx,inty)intz;if(xy)z=x;e1sez=y;printf(*min=z,);return(z);intadd(intx,inty)intz;z=x+y;PrinIf(sum=);return(z);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服