Visual C++程序设计王永国电子教案 第5章.pptVIP

Visual C++程序设计王永国电子教案 第5章.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 函数 5.2.2 函数调用 5.3 函数间参数传递 (2) 数组名作参数 (3)引用参数 5.3.2 函数参数缺省 5.5 递归函数 5.6 函数重载 5.7 函数模板 5.8 作用域与存储类别 5.8.1 自动变量(auto) 5.8.2 静态局部变量(static) 5.8.3 全局变量 5.9 程序举例 【例5.7】编一函数,判别一个自然数N是否是降序数,同时,求出该数各位数和。并加以调用,若是降序数输出“yes”,否则输出“no”。例如:3、441、531是降序数;而412不是降序数。 bool drop(int x,int sum) { bool flag=1;int x1=x; while(x1) { sum+=x1%10;x1/=10; //求和 } while(x=10flag) //判断是否降序数 if(x/10%10=x%10) x/=10; else flag=0; return flag; } 函数在定义时预先给定一个缺省的形参值,调用时给出的优先。 #include iostream.h #include math.h double s(double x , double eps=1e-6) {int n=1; double w=0.0, t=1.0 ; while(fabs(t)=eps) {w+=t; t=t*x/(n++);} return w; } void main() { couts1=s(2.0); couts2=s(3.0); couts3=s(1.0,1e-5);} 参数eps取默认值1e-6 参数eps的值为1e-5 【例5.19】求下面级数的部分和。精度为: 说明: 默认参数的说明必须出现在函数调用之前。若一个函数说明已给出参数的默认值,则在函数定义中不允许再设置。 要求赋予默认值的参数必须放在形参表列中的最右端。函数调用时按从左到右的顺序将实参与形参结合,不足用右边缺省值来补足。 分析下面各例: void fun(int i, int j, int k, int m=3,int n=4); 假设函数调用语句为: fun(1,2); //错误,至少应有三个实参 fun(10,20,30); //正确,m、n取默认值3与4 fun(10,20,30,40); //正确,m取40、n取默认值4 fun(10,20,30, ,50); //错误,只能从左至右匹配 5.4 内联函数 C++引入内联函数的原因是用它来取代C中的预处理函数。内联函数和宏函数的区别在于,宏函数是由预处理器对宏进行替换,而内联函数是通过编译器来实现的,因此内联函数是真正的函数,只是在调用的时候,内联函数像宏函数一样的展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用的开销,因此,内联函数比普通函数有更高的执行效率。 在C++中使用inline关键字来定义内联函数。inline关键字防在函数定义中函数类型之前。不过编译器会将在类的说明部分定义的任何函数都认为内联函数,即使它们没有用inline说明。 【例5.14】 使用内联函数实现求两个整数的最大值。 //Ex5_14.cpp #include iostream using namespace std; inline int myMax(int x,int y) {return xy?x:y;} void main() {coutmyMax(3,6)endl;} 关键字inline将函数myMax说明成内联函数。其使用方式和一般函数一样,只不过在程序执行时并不产生函数调用,而是在函数调用处将函数代码展开执行。内联函数的定义必须出现在内联函数第一次被调用之前。 当然,内联函数也有一定的局限性,就是函数中的代码不能太多,函数体内不能有循环语句和switch语句,结构也不能太复杂。 C++中之所以引入内联函数,这与宏函数固有缺陷有关。 用自身的结构来描述自身就称为递归(直接、间接)。 最典型的例子是对阶乘运算: n!=n(n-1)! (n-1)!=(n-1)(n-2)! ……

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档