C++第7章函数与指针.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机程序设计(C++) 第7章 函数与指针 教师:杨振平 E-mail: zpyang@ctec.xjtu.edu.cn 一、递归函数 例7-1 采用递归算法求n! 算 法: 1 n=0 n!= fac (n) = n*fac(n-1) n0 函数代码如下: 递归算法 输出从p1到p3的移动信息 n=1 hanoi(n,p1,p2,p3)= 二、函数重载 C++允许在一个程序中定义“同名函数”,实现同一类的操作。 重载函数的特征: 函数名相同 参数的个数或参数的类型有区别。 例7-4 重载找两个数中大数的函数 //整数 int max(int x,int y) { return xy?x:y; } //双精度型 double max(double x,double y) { return xy?x:y; } //长整型 long max(long x,long y) { return xy?x:y; } 三、指针与函数 指针作为函数的参数 返回指针的函数 指向函数的指针 指针作为函数的参数 指针作函数的形参,接受实参的地址,函数中通过该指针能够间接访问实参数据,能够实现 “双向传递数据”的目的。 例:程序填空。函数功能:找x和y的大数,并用参数带回结果。(用指针) 返回指针的函数 返回指针的函数声明格式: 类型 * 函数名(形式参数表); 例如: char *strchr(char *string, char c); char *mystrspc(char *string,int n);//生成n 个空格 例 7-5 将月份数值(1-12)转换为相应的英文名称 char *month_name( int n ) { static char *month[ ]= { Illegal month, // 月份值错 January, // 一月 February, // 二月 March, // 三月 April, // 四月 May, // 五月 June, // 六月 July, // 七月 August, // 八月 September, // 九月 October, // 十月 November, // 十一月 December // 十二月 }; return (n=1 n=12)?month[n]:month[0]; } 指向函数的指针 指向函数的指针:能够存放某个函数的入口地址。 定义如下: 函数返回值类型 ( * 指针变量名 ) ( 参数说明表 ); 例如: double (*p)( double ); float (*q)(float,int); double integral(double a, double b, double (*fun)(double), int n) { double h = (b-a)/n; double sum = ((*fun)(a)+(*fun)(b))/2; int i; for(i=1; in; i++) sum += (*fun)(a+i*h); sum *= h; return sum; } 调用时:y1=integral(0.0,1.0,sin,1000); y2=integral(0.0,2.0,g,1000); y3=integral(0.0,3.0,h,1000); 四、带参数的main()函数 函数原型为: int main(int argc, char *argv[ ]) 第一个int型参数指明由命令行方式提供的参数个数(包括程序名本身); 第二个参数为字符型指针数组,用来存放命令行中各个参数字符串。 (其中第1个元素argv[0]指向本程序名,接下来的下标变量argv[1],argv[2]...等分别指向命令行传递给程序的各个参数) 程序设计举例 例7-9 采用递归算法

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档