C语言程序设计重庆大学课件第05章指针与函数(I)

C语言程序设计重庆大学课件第05章指针与函数(I)

ID:39320063

大小:463.10 KB

页数:23页

时间:2019-06-30

C语言程序设计重庆大学课件第05章指针与函数(I)_第1页
C语言程序设计重庆大学课件第05章指针与函数(I)_第2页
C语言程序设计重庆大学课件第05章指针与函数(I)_第3页
C语言程序设计重庆大学课件第05章指针与函数(I)_第4页
C语言程序设计重庆大学课件第05章指针与函数(I)_第5页
资源描述:

《C语言程序设计重庆大学课件第05章指针与函数(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程序设计技术C语言数据描述和C程序设计初步结构化程序设计基础和C语言的控制结构数组及其应用函数与C程序结构指针与函数指针与数组字符串及其应用结构体类型和联合体类型C语言的文件处理及其应用位运算与枚举类型指针与函数指向函数的指针返回指针值的函数指向函数的指针指向函数指针变量的定义用指向函数的指针变量来调用函数指向函数的指针变量作函数参数5.1.1指向函数指针变量的定义指向函数的指针变量(简称函数指针)每一个函数都是一个程序模块,这个模块在内存中都占有一片存储区,函数名代表了该存储区的首地址,称为函数

2、的入口地址。定义一个指针变量并且使它指向函数的入口地址,就称这个指针变量为指向函数的指针变量。指向函数的指针变量的定义<存储类别><数据类型>(*指针变量名)([形参表]);存储类别函数指针变量本身的存储特性;数据类型指针指向的函数的返回值类型;给指向函数的指针变量赋值:指向函数的指针变量=函数名;函数指针的调用格式(*函数指针变量)([实参表])指向函数的指针指向函数指针变量的定义用指向函数的指针变量来调用函数指向函数的指针变量作函数参数5.1.2用指向函数的指针变量调用函数定义指向函数的指针变

3、量后,就可将一个函数名赋给该指针变量。此后,对该指针变量的指针运算就是使程序控制转移到指针指向的函数入口地址去执行该函数的函数体。例如:有函数说明为:voidswap(intx,inty);指向函数的指针变量定义:void(*fp)(intx,inty);将函数名swap赋给函数指针变量fp:fp=swap;使用函数指针变量fp调用函数swap的形式:(*fp)(a,b)fp(a,b);例5-1编程序计算下面的公式,其中n从键盘输入,要求使用指向函数的指针变量来实现。(n为奇数时)(n为偶数时)

4、5.1.2用指向函数的指针变量调用函数5.1.2用指向函数的指针变量调用函数FFTT图5.1程序算法描述开始n>=1n%2=0fp=f1fp=f2(*fp)(n)调用函数结束输入n值输出结果输出数据错误5.1.2用指向函数的指针变量调用函数根据以上算法描述写出程序代码如下:#includedoublef1(intx),f2(intx);voidmain(){double(*fp)(intx);/*定义指向函数的指针变量fp*/intn;printf(“inputn:”);scan

5、f(“%d”,&n);if(n>=1){if(n%2==0)fp=f1;/*n为偶数,指针变量fp指向函数f1()*/elsefp=f2;/*n为奇数,指针变量fp指向函数f2()*/printf(“value=%9.4f”,(*fp)(n));/*用函数指针调用函数*/}elseprintf(“Dataerror!”);}665.1.2用指向函数的指针变量调用函数doublef1(intx){intk;doublevalue=1.0;for(k=2;k<=x;k=k+2)value=va

6、lue+(1.0/k)*(1.0/k);returnvalue;}doublef2(intx){intk;doublevalue=1.0;for(k=3;k<=x;k=k+2)value=value+(1.0/k)*(1.0/k);returnvalue;}61+1.0/22+1.0/42+1.0/62指向函数的指针指向函数指针变量的定义用指向函数的指针变量来调用函数指向函数的指针变量作函数参数5.1.3指向函数的指针变量作函数参数程序中如何设计通用方法主要解决两个问题:如何用C语言描述解决某种问

7、题的通用方法如何将具体问题与解决问题的通用方法联系通用方法可应用于求解高阶方程的根、求多元方程组的解、求函数的定积分等。函数指针的作用主要在程序的函数之间传递函数,即把一个函数的地址作为参数从一个函数传递到另外一个函数。一般主调函数的实参应当是被传递的函数名,而被调函数的形参应该是能接收函数地址的函数指针(指向函数的指针变量)。5.1.3指向函数的指针变量作函数参数例5-5利用已有的通用函数按给定条件求定积分。其中确定精度的等分数从键盘输入。(1)求函数f1(x)=(1+x)在区间[0,2]的定积

8、分。(2)求函数f2(x)=1/(1+4x2)在区间[-1,1]的定积分求定积分的方法:矩形法、梯形法、辛普生法。以梯形法为例,设计求定积分的通用函数步骤:将区间[a,b]划分为n等分,等分数取决于所求精度;计算出所有等分点的函数值f(xi);连接相邻两个等分点的函数值,将所求曲边四边形区域用若干个小的梯形代替;按公式求出所有小的梯形面积,然后求和得到曲边四边形面积的近似值;5.1.3指向函数的指针变量作函数参数用求梯形面积的方法计算某区间的定积分将[a,b]区间n等分,则梯形的高

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。