C++语言程序设计教程(第二版)清华出版 杨进才第4章 函数.ppt

C++语言程序设计教程(第二版)清华出版 杨进才第4章 函数.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 函数 第4章 函数 4.1 函数的定义和声明 4.1.1 函数的定义    函数是一个命名的程序代码块,是程序完成其操作的场所,是将功能重复的程序段抽象出来所形成一个独立的、可重复使用的功能模块。  定义函数的一般格式为: 4.1 函数的定义和声明 在函数的定义中: 返回类型为函数返回值的类型,可以是系统任一基本数据类型或用户已定义的一种数据类型,它是函数执行过程中通过return语句要求的返回值的类型,又称为该函数的类型。当一个函数不需要通过return语句返回一个值时,称为无返回值函数或无类型函数,此时需要使用void作为类型名。 函数名是用户为函数所起的名字,它是一个标识符,应符合C++标识符的一般命名规则,用户通过使用这个函数名和实参表可以调用该函数。 形式参数表可以包含任意多项(可以没有),当多于一项时,前后两个参数之间必须用逗号分开。 用花括号括起来的语句序列组成了函数体,即函数所完成的具体操作,函数体一般分为3部分:第1部分为定义部分,定义函数所需要的局部常量与局部变量;第2部分为函数的功能部分,完成函数的功能;第3部分为返回值部分,返回函数的结果。如果函数体中没有任何语句,该函数称作空函数。 每个函数都是一个功能独立的模块,绝不允许在一个函数体内定义另一个函数。 4.1 函数的定义和声明 4.1 函数的定义和声明 在C++程序中,使用函数前首先需要对函数原型进行声明,告诉编译器函数的名称、类型和形式参数。 在C++中,函数原型声明原则如下: (1) 如果函数定义在先,调用在后,调用前可以不必声明; 如果函数定义在后,调用在先,调用前必须声明。 (2) 在程序设计中,为了使程序设计的逻辑结构清晰,一般 将主要的函数放在程序的起始位置声明,这样也起到了 列函数目录的作用。 在C++中,函数原型声明原则如下: (1) 如果函数定义在先,调用在后,调用前可以不必声明;如果函数定义在后,调用在先,调用前必须声明。 (2) 在程序设计中,为了使程序设计的逻辑结构清晰,一般将主要的函数放在程序的起始位置声明,这样也起到了列出函数目录的作用。 声明函数原型的形式如下: 例如: int max(int x,int y)?; int max(int,int)?; 函数调用的一般形式为: 各实际参数表中的实际参数应与形参表中的形参一一对应,即个数相等且对应参数的数据类型相同。 函数调用是一个表达式,函数名连同括号是函数调用运算符。表达式的值就是被调函数的返回值,它的类型就是函数定义中指定的函数返回值的类型,即函数的类型。 如果函数的返回值为void,说明该函数没有返回值。 例如: coutmax(a,b)endl; 当调用一个函数时,整个调用过程分为三步进行: 第一步:函数调用; ① 将函数调用语句下一条语句的地址保存在一种称为“栈”的内存空间中, 以便函数调用完后返回。将数据放到栈空间中的过程称为压栈。 ② 对实参表从后向前,依次计算出实参表达式的值,并将值压栈。 ③ 转跳到函数体处。 第二步:函数体执行,即逐条运行函数体中语句的过程。 ④ 如果函数中还定义了变量,将变量压栈。 ⑤ 将每一个形参以栈中对应的实参值取代,执行函数体。 ⑥ 将函数体中的变量、保存在栈中的实参值,依次从栈中取出,以释放栈 空间。从栈中取出数据称为出栈,x出栈用pop(x)表示。 第三步:返回,即返回到函数调用表达式的位置。 ⑦ 返回过程执行的是函数体中的return语句。 以函数max()为例,演示函数调用的详细过程如图4-1所示 函数调用过程实际上执行了一个从参数传递----执行函数体----返回的过程。其中的函数参数传递过程的实质是将实参值通过栈空间一一传送给实参的过程,这种把实参表达式的值传送给对应的形参变量传递方式称为“按值传递”。 4.2.3 函数参数的按值传递 4.2.4 嵌套调用 在一个函数中调用其它函数叫函数的嵌套。C++中函数的定义是平行的,除了main()以外,都可以互相调用。函数不可以嵌套定义,但可以嵌套调用。比如函数1调用了函数2,函数2再调用函数3,这便形成了函数的嵌套调用。 4.2.4 递归调用 在调用一个函数的过程中又直接或间接地调用该函数本身的现象,叫做函数的递归调用。 ? 1 (n=0) n!=

文档评论(0)

PPT精品 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档