[工学]第04章 函数.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文档。上传文档
查看更多
[工学]第04章 函数

第4章 函数 学习目标 掌握函数的声明和定义、函数的调用及函数的参数传递过程 了解关键字inline的含义与使用 掌握递归函数的定义及使用 掌握函数重载的定义及使用 掌握函数模板的定义及使用 了解各类系统函数,掌握常用的系统函数的使用 程序模块 结构化程序设计,要求采用自顶向下的方法,将功能复杂的程序分解为若干个功能单一模块 功能单一即软件理论中提及的低耦合、高内聚,即各个模块之间没有交叉功能,这样一个模块的错误不会波及到其它模块,同时修改一个模块的功能也不会影响其它模块 将程序进行模块化,降低了大型程序编制的难度,提高了程序的复用度,同时也使编程人员之间的分工、协作成为可能 函数概述 C/C++语言中程序模块通过“函数”来实现。函数是一个命名的程序代码块,是程序完成其操作的场所,是将功能重复的程序段抽象出来所形成一个独立的、可重复使用的功能单元 一个完整的C/C++语言程序由若干个函数组成,其中有且只有一个main函数,main函数是程序的入口,由操作系统调用 在main函数中可以调用其它的函数,以完成指定的功能,其它函数之间可以相互调用,但不能调用main函数 简单示例 #includeiostream using namespace std; int add(int i1,int i2) { int i; i=i1+i2; return i; } int main() { int a,b,c; coutplease input tow integers:; cinab; c=add(a,b); couta+b=cendl; return 0; } 函数的定义 C/C++语言中的函数,必须先定义,后使用。在一个函数内部可以调用其它函数,但在一个函数内部不能嵌套地定义另一个函数 定义函数的一般格式为: 返回类型 函数名(数据类型1 参数1, 数据类型2 参数2,…) { 语句序列 } 关于函数定义(一) 函数首部包括:返回类型、函数名称、参数列表 返回类型为函数返回值的类型,可以是系统任一基本数据类型或用户自定义的一种数据类型,它规定了函数执行既定功能后return语句返回的类型,又称为该函数类型。当一个函数不需要通过return语句返回一个值时,称为无返回值函数或无类型函数,此时需要使用void作为类型名 函数名称是用户为函数所起的名字,它是一个标识符,应符合C/C++标识符的一般命名规则,用户通过使用这个函数名传递参数以调用该函数 关于函数定义(二) 参数列表可以包含任意多项(可以没有),当多于一项时,前后两个参数之间必须用逗号分开 用花括号括起来的语句序列组成了函数体,即函数所完成的具体操作,一般分为3部分: 第1部分为定义部分,定义函数执行过程中所需要的一些常量或变量 第2部分为函数的功能部分,完成函数的功能 第3部分为返回值部分,返回函数的结果 注意:每个函数都是一个功能独立的模块,绝不允许在一个函数体内定义另一个函数 函数的声明 函数必须先定义后使用,如果需要在定义前使用函数,则必须在使用前声明该函数 函数的声明格式为(两种): 返回类型 函数名(数据类型1 参数1, 数据类型2 参数2,... ); 返回类型 函数名(数据类型1, 数据类型2,... ); 注意: 1)函数的声明不包含函数体,最后必须以分号结束 2)函数的定义只可以一次,但声明可以多次 3) 返回类型、函数名称、参数类型列表构成了函数原型(prototype) 函数的调用 函数定义/声明之后就可以在需要时加以使用,即调用。函数的调用的格式为: 函数名(实际参数1,实际参数2,...) 形式参数——函数定义中的参数,用来接收主调函数传递的数据,必须是左值。在调用前,并没有给它们分配内存 实际参数——主调函数向被调函数传递的数据,可以是右值,必须与形式参数一一对应,即个数相等且数据类型相容 函数调用是一个表达式。表达式的值就是被调函数的返回值,它的类型就是函数定义中指定的函数返回值的类型,即函数的类型。如果函数的返回值为void,说明该函数没有返回值 调用过程与数据传递 调用过程: 主调函数调用被调函数 执行流程转入被调函数的函数体,执行指定功能 被调函数执行完之后,返回到主调函数,继续执行主调函数的后续语句 数据传递 主调函数通过参数向被调函数传递数据,被调函数通过return语句向主调函数返回结果 函数调用的底层开销 在系统内部,函数调用需要借用一种叫做“栈”的数据结构来进行(栈的显著特征是数据的入出顺序:先进后出) 主调函数发出调用指令后,系统将主调函数中将要执行的下一条语句的地址保存到栈中,同时还要保存主调函数中其它相关数据——保护现场 被调函数执行完成后,系统从栈中取出主调函数相关数据的值

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档