电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

C++语言程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 PPT 作者 吕凤翥 第5章 函数

  • 资源ID:89343027       资源大小:135KB        全文页数:34页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

C++语言程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 PPT 作者 吕凤翥 第5章 函数

第5章 函 数,5.1 函数的定义和说明,1函数的定义格式,5.1.1 函数的定义,C+语言中,函数的定义格式如下: () ,其中,包含存储类和数据类型。存储类对函数来讲有两种:一种是外部函数,存储类说明符为extern,通常被缺省;另一种是内部函数,存储类说明符为static,该说明符不可省略。,下面列举几个简单函数的定义。 void nothing () 又例如, void fun1() cont “ok!“ endl; 又例如, double add (double d1, double d2) double sum; sum=d1+d2; return sum; ,C+程序中,可以定义多个函数,其中有一个主函数main(),其余函数都是被调用的函数。 C+语言中不允许在函数体内再定义函数。, 在定义函数时,C语言允许省略函数的数据类型,但C+语言中不允许省略任何的数据类型。 C语言规定:函数体内或分程序内,说明语句一定要放在执行语句的前面。在C+语言中取消了这条限制,即在函数体或分程序内说明语句可根据需要出现在程序的任何位置。,2在函数定义方面C+语言与C语言的不同,1函数的说明方法,5.1.2 函数的说明方法,在C+语言中,对函数的说明要求使用原型说明。函数的原型说明包括不仅要说明函数名和函数类型,还要说明该函数的参数个数及参数类型,参数名可以说明也可以不说明。,在函数说明方面C语言要求使用简单说明或原型说明都可以,通常使用简单说明。而C+语言中,对函数的说明要求用原型说明不能用简单说明。,2在函数说明方面C+语言与C语言的不同,5.2 函数的参数和返回值,函数的实参指的是调用的参数,它可以是表达式,也可以是地址值,实参的特征是该参数具有一个确定的值。 函数的形参指的是被定义函数的参数,它可以是变量名、指针或引用,形参的特征是该参数在函数未被调用时是没有被分配内存单元的。,5.2.1 函数的参数,1函数的实参和形参,当一个函数具有多个实参时,允许不同编译系统在计算函数实参时有不同的计算顺序。在多个参数中出现了具有副作用的运算符时,不同的求值顺序可能造成不同的计算结果。于是便可能出现二义性。为了避免这种二义性,应该避免函数实参中出现的带副作用的运算符。 见书中例5.1。,2函数实参的求值顺序,C+语言允许设置函数参数的默认值。 关于设置函数参数默认值的规则如下。 一个函数有多个参数时,可以给该函数的部分参数或全部参数设置默认值。 在给函数的部分参数设置默认值时,应该从参数表的右端开始,在设置了默认值的参数的右端不允许出现没有设置默认值的参数。,5.2.2 设置函数参数的默认值, 如果一个函数需要说明时,默认的参数值应设置在函数的说明语句中,而不是函数的定义中。 在函数调用时,对应参数如果有实参值,则将用该实参值取代设置的默认值;如果没有给定实参值时,则用参数的默认值。 在给函数参数设置默认值时,可以用相同类型的常量、变量以及同类型表达式,也可以是函数,通常应使用全局量。 见书中例5.2,例5.3。,C+语言中,如果一个函数具有返回值,则需要在该函数体内有如下形式的返回语句: return ; 函数返回值的具体实现过程描述如下。 执行带有返回值的return语句时,先计算return关键字后边的的值。,5.2.3 函数返回值的实现, 根据函数的类型来确定表达式的类型。如果表达式类型与函数类型不一致时,强行将表达式类型转换为函数类型。 将表达式的值作为函数的返回值传递给调用函数,作为调用函数的值,通常调用函数将其值赋给某个同类型的变量,或者输出显示。 将程序的执行顺序转回到调用函数的语句,接着执行调用函数下面的语句。 见书中例5.4。,5.3 函数的调用,5.3.1 函数的传值调用,1传值调用方式,这种调用方式的数据传递机制如下: 实参用表达式,形参用变量名,在函数调用时,用实参值对形参变量进行初始化。这种传递数据的特点是实参将拷贝一个副本给形参。,这种调用方式的特点如下: 由于传值调用的机制是实参拷贝副本给形参,于是在被调用函数中通过形参只能改变副本中实参传递过来的值,而无法改变实参变量的值。,这种调用方式的数据传递机制如下: 这种调用要求实参用地址值,形参用同类型的指针。在函数调用时,将用实参的地址值初始化形参的指针,即使形参的指针指向实参的变量。,2传址调用方式,这种调用方式的特点如下: 由于传址调用的机制是用形参指针指向实参变量,因此很容易在被调用函数中通过指针来改变调用函数的实参值。 见书中例5.5。,引用调用方式数据传递的机制如下: 引用调用要求函数的实参用变量名或对象名,形参是引用名,用变量名对形参引用进行初始化。在引用调用中,不拷贝实参的副本。实际上只传递地址,使形参变成了实参的引用。 引用调用具有如下特点: 引用调用可以在被调用函数中通过改变 形参引用的值来改变调用函数中的实参值。 见书中例5.6。,5.3.2 函数的引用调用,函数的嵌套调用是指当一个函数调用另一个函数时,被调用函数又再调用其他函数。 见书中例5.7,例5.8。,5.3.3 函数的嵌套调用,5.4 指针和引用作函数参数和返回值,5.4.1 指针作函数参数和返回值,1指针作函数参数,指针作函数参数实现传址调用,实参用地址值,形参用指针,具有较高的传递效率。 见书中例5.9。,指针作函数的返回值,该函数被称为指针函数。 见书中例5.10。,2指针可以作函数的返回值,1引用作函数参数,5.4.2 引用作函数参数和返回值,引用作函数参数称为引用调用,它具有与传址调用相同的特点。 见书中例5.11。,引用作函数的类型时,该函数返回的是某个变量或对象的引用,而不是数据值。 见书中例5.12。,2引用可以作函数的返回值,5.5 重载函数和内联函数,在C+语言中,引进了重载函数,允许同一个函数名对应着不同的实现。以求绝对值为例, 3个求绝对值的函数起一个名字abs。 int abs(int); long abs(long); double abs (double);,1重载函数的概念,5.5.1 重载函数,编译选择原则如下。 重载函数至少要在函数的参数类型、参数个数和参数顺序上有所不同。根据重载函数的参数类型、参数个数和参数顺序的不同进行选择。 重载函数选择是按下述先后顺序查找的,将实参类型与所有被调用的重载函数的形参类型一一比较。,2重载函数的选择规则,先查找的是严格匹配的; 再查找通过类型转换可以匹配的; 最后是通过用户的强制类型转换达到匹配的。,使用重载函数时应注意以下事项。 不允许使用typedef语句定义的类型名来区分重载函数的参数。 定义重载函数时,要注意同名函数应具有相同的功能。 重载函数中的形参如果设置了默认值,则会影响重载函数的选择。 见书中例5.13,例5.14。,1内联函数的概念,5.5.2 内联函数,在程序编译时,系统将程序中出现的内联函数调用表达式用该内联函数的函数体进行替换。这样处理虽然会增加目标代码,但是避免了因函数调用而产生的额外开销。,定义内联函数的方法很简单,即在函数头前面加关键字inline,其他与一般函数相同。 使用内联函数应注意如下事项。 内联函数的函数体内不允许出现循环语句和开关语句等大语句。如果内联函数的函数体内含有这些语句时,系统将它按普通函数处理。,2内联函数的定义方法, 内联函数的函数体不宜过大,通常以15行为宜。过大会增加源程序的代码量。 在类结构中,在类体内定义的成员函数都是内联函数。 见书中例5.15。,5.6 函数的存储类,外部函数的作用域是整个程序,包含该程序的所有文件。 外部函数的定义格式如下: extern () 见书中例5.16。,5.6.1 外部函数,内部函数的作用域是定义在该函数的文件内。在程序的一个文件中定义的内部函数只能在该文件中调用,在该程序的其他文件中是不能调用的。,5.6.2 内部函数,内部函数的定义格式如下: static () 见书中例5.17。,作业题和上机练习题,

注意事项

本文(C++语言程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 PPT 作者 吕凤翥 第5章 函数)为本站会员(E****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.