- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10.5 函数指针与指向函数的指针变量 一个函数在编译时被分配一个入口地址(第一条指令的地址),这个入口地址称为函数的指针。函数名即 代表此入口地址。 如果用一个指针变量保存该函数的入口地址,称该变量为指向函数的指针变量,简称为函数指针。 定义一个指针变量存放函数入口地址,则可以通过函数指针变量来调用函数。 10.5.1 用指向函数的指针变量调用函数1. 函数指针定义的一般形式:函数返回值类型 (*指针变量名)(形参说明表) 例:int (*p) (int,int); #include stdio.h int max(int a,int b); int min(int a,int b); main() {int x=3,y=4,z; int (*pf)(int,int); pf=max; z=(*pf)(x,y); printf(max=%d\n,z); pf=min; z=(*pf)(x,y); printf(min=%d\n,z); } int max(int a,int b) {return ab?a:b;} int min(int a,int b) {return ab?a:b;} 2. 函数指针变量的赋值 p=max; max是已定义已存在的函数 3. 函数的调用形式 通过函数名调用: 通过指向函数的指针变量调用: (*p)(实参表) 4. 指向函数的指针使用方法 P260 10.22 目的是间接访问函数。对函数指针进行p+1、p++、p--是没有意义的。也不能使用*(p+1)来表示下一条指令。 10.5.2 指向函数的指针变量做参数 例10.23 P263 例P245 求定积分。编写一个求定积分的通用函数:double jifen(double (*p)(),double a,double b);分别求 , 的积分值。函数的返回值为积分的结果,函数有三个参数:上边界,下边界和一个指向函数的指针。 求定积分问题:所谓求函数f(x) 在区间[a,b]上的定积分,其物理意义就是求由曲线f(x) 与直线 x=a,x=b及横轴所围成的面积。计算机求积分通常采用梯形法。梯形法积分的一个简单理解就是,把原积分区间划分为一系列小区间,在每个小区间上都用小的梯形面积来近似原函数积分。当小区间足够小时,我们就可以得到积分的近似值。 图10-1是使用梯形法求积分的示例。对于任意整数n,取h=(b-a)/n,则定积分 其中 。对每一个 取梯形近似得: 则整个积分值可近似表示为: 原则上说,当n→∞时,上式就等于定积分的值。在计算机编程时,可对n取100、1000、10000,则上式的值应越来越趋近于定积分的值。 分析:编写一个求定积分的通用函数: float integral(float (*fun)(float), float a, float b); 其中,a、b表示积分区间,fun是函数指针。 函数f在区间[a,b]的定积分公式: float f1(float x) { float f; f = 1 + x*x; return f; } float f2(float x) {float f; f = 1 + x + x*x + x*x*x; return f; } float f3(float x) {float f; f = x / (1 + x*x); return f;} float integral(float (*fun)(float), float a, float b) {float s, h, y; int n, i; s = ( (*fun)(a) + (*fun)(b) ) /2.0; n = 100; h = (b-a)/n; for(i=1; in; i++) s = s + (*fun)(a+i*h); y = s * h; return y; } void main() {float y1, y2, y3; y1 = integral(f1, 0.0, 1.0); y2 = integral(f2, 0.0, 2.0); y3 = integral(f3, 0.0, 3.5); printf(y1=%6.2f\ny2=%6.2f\ny3=%6.2f\n, y1,y2,y3); } #includemath.h #define PI 3#define w 30000 double fun1(double x) {return(x*x+1); } double fun2(double x)
您可能关注的文档
最近下载
- 《矿物学》全套教学课件.pptx
- 人教版数学四年级下册 典型例题系列之第一单元四则运算的计算题部分(原卷版).pdf VIP
- 三年级数学下册典型例题系列之第七单元小数的初步认识(原卷版)人教版.docx VIP
- 2023届高三数学复习精品教学课件+空间几何体的外接球、内切球(1).pptx VIP
- 超星尔雅学习通《美的历程:美学导论(中国社会科学院)》2025章节测试附答案.docx
- 2、附件《合规管理体系内部审核表》.docx VIP
- 2025节能宣传周与全国低碳日宣讲.pptx VIP
- 《水环境自动监测站运维技术规范》.pdf VIP
- 加速康复外科中国专家共识及路径管理指南(2025年版).docx
- 2025年秋(新人教版)三年级数学上册第六单元《6.1.1 几分之一》课件教学PPT(新教材).pptx
有哪些信誉好的足球投注网站
文档评论(0)