- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 函 数 一. 函数的概念 二. 函数的调用 三. 函数的嵌套调用和递归调用 四. 重载函数和内联函数 五. 函数的存储类 一、函数的概念 1.函数的定义格式 变型函数名(参数表) { 函数体 } 其中,类型包含数据类型和存储类,数据类型不得省略,外部函数存储类说明符extern可省略。函数名同标识符。参数表中可省一个参数或多个参数,多个参数逗号分隔。也可没有参数。 函数体是由若干条语句组成的,可以没有语句,称空函数,即无功能的函数,在函数体内的若干条语句中,取消了C语言中,说明语句在执行语句文先的规定,给编程带来方便。 2.函数的说明方法 函数说明在该函数调用之前,对于先调用后定义的函数,在调用之前必须说明。说明函数时,使用原型说明,其要求如下: 要求给出函数名,函数类型以及参数的类型和个数。 3.函数参数 (1)调用函数的参数称为实参。 被调用函数的参数称为形参。 (2)要求实参和形参的个数相等、类型相同。 (3)函数形参是在该函数被调用时用实参对它进行初始化时被分配内存空间的。 (4)C++语言中,函数的形参是可以设置默认参数的,规则如下: ? 设置函数参取的默认值时,要求从右向左。不允许在设置了默认值的参数右边出现不设置默认值的参数。 ? 函数形参可以全部或部分设置默认值。 ? 在函数有说明语句的情况下,参数默认值应设置在说明语句中,而不是定义的语句中。在没有函数说明语句时。可定义在定义语句中。 ? 在函数调用时,如果实参有确定值时,对应形参的默认值无效,否则使用形参的默认值。 ? 给形参设置默认值可用同类型的常数,也可用表达式。 4.函数的返回值 函数返回值使用refurn语句,其格式如下: refurn表达式; 执行机制如下: ? 计算表达式值 ? 将表达式的类型转换为函数类型 ? 将表达式的值作可调用函数的值,传递给某变量或表达式 ? 返回程序控制权 二、函数的调用 1.传值调用方式 传值调用又分传表达式值和传变量地址值两种。;它们的实现方法,机制和特点上不同。 ? 传值调用方式: 实参用表达式值,形参用变量名。调用时,将实参拷贝一个副本给形参。这种调用的特点是被调用函数中改变形参值不影响调用函数实参值。 ? 传址调用方式: 实参用地址值,形参是指针。调用时,实参不拷贝副本给形参,而是传递地址给形参,让形参指针指向实参。这种调用的特点是被调用函数中可以通过改变形参所指向的变量值来影响调用函数的实参值。 见P147,例6.5;P149,例6.7,例6.8 2.引用调用 引用调用时,实参用变量名,形参是引用名,形参为实参的别名,实际上传递的是地址值。这种调用的特点同于传址调用,但是比传址调用方便简捷,免去了指针可能带来的麻烦。因此,在C++语言中人们习惯于使用引用调用,较少使用传址调用。 见P148,例6.6,P150,例6.9,例6.10,例6.11。 三、函数的嵌套调用和递归调用 1.函数的嵌套调用 所谓函数的嵌套调用是指当一个函数调用另外一个函数时,被调用函数还可以再调用其他函数。 见P153,例6.12,例6.13。 2.函数的递归调用 递归调用是指在调用一个函数的过程中出现直接或间接地调用该函数自身。 ? 递归调用的特点 ? 递归调用的过程 ? 实现递归调用的方法 见P156,例6.14,例6.15 四、重载函数和内联函数 这是C++语言中增添的内容。 1.重载函数 ? 重载函数的概念 相同函数名的多个函数,它们在函数参数的类型、个数和顺序上有所不同,它们还具有不同的实现(即函数体)。 ? 重载函数的选择规则 相同名字的若干个函数选择规则是根据调用函数的实参的类型、个数和顺序不同进行匹配选择。 见P159,例6.16,例6.17 2.内联函数 ? 内联函数的概念 内联函数被调用时不是转去执行该函数的函数体,而是在编译时用该函数体进行替换。以增加程序代码为代价换取较高的运行效率。 ? 内联函数的说明方法 在函数头前加关键字inline。 见P161,例6.18。 五、函数的存储类 1.外部函数 见P162,例6.19 2.内部函数 见P164,例6.20 作业题P165练习题6 6.1,6.2,6.3,6.4,6.5(自选) 上机练习题:P170 上机指导6 6.2中1~10题。 ? * * 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址:
您可能关注的文档
- C++程序设计大学教程 王春玲 第6章 类和对象.ppt
- C++程序设计大学教程 王春玲 第7章 继承和派生.ppt
- C++程序设计大学教程 王春玲 第8章 虚函数与多态性.ppt
- C++程序设计大学教程 王春玲 第9章 运算符重载.ppt
- C++程序设计大学教程 王春玲 第12章 异常处理.ppt
- C++大学基础教程 作者 徐惠民 C++大学基础教程第六章.ppt
- C++大学基础教程 作者 徐惠民 C++大学基础教程第七章.ppt
- C++大学基础教程 作者 徐惠民 C++大学基础教程第三章.ppt
- C++大学基础教程 作者 徐惠民 C++大学基础教程第十二章.ppt
- C++大学基础教程 作者 徐惠民 C++大学基础教程第十三章.ppt
- C++语言基础教程 作者 吕凤翥 第7章 结构和联合.ppt
- C++语言基础教程 作者 吕凤翥 第8章 类和对象(一).ppt
- C++语言基础教程 作者 吕凤翥 第9章 类和对象(二).ppt
- C++语言基础教程 作者 吕凤翥 第10章 继承性和派生类.ppt
- C++语言基础教程 作者 吕凤翥 第11章 多态性和虚函数.ppt
- C++语言基础教程 作者 吕凤翥 第13章 C++语言工具.ppt
- c++语言简明教程 作者 吴延海_ 第1章.ppt
- c++语言简明教程 作者 吴延海_ 第2章.ppt
- c++语言简明教程 作者 吴延海_ 第3章.ppt
- c++语言简明教程 作者 吴延海_ 第5章.ppt
文档评论(0)