- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1-* 第八章 函数 课程内容安排 函数的概念、分类和组成。 函数的定义、声明和原型。 函数的调用和递归调用。 内联函数的应用。 函数的综合应用。 函数的基本概念 简单的说,函数就是对复杂问题的一种“自顶向下,逐步求精”思想的体现。用户可以将一个大而复杂的程序分解为若干个相对独立而且功能单一的小块程序(函数)进行编写,并通过在各个函数之间进行调用来实现总体的功能 函数的组成 一般的说,函数由四部分构成:返回类型、函数名、参数列表和函数体。函数名就是函数的名字,即函数的标识符。既然是标识符,就必须遵守标识符的命名规则。同变量的标识符相同,函数的标识符也是只能由字母、数字以及下划线组成,并且不能以数字开头。 声明函数 函数声明的作用就是告诉调用者如何使用该函数,即函数接受什么类型的参数,参数的个数,以及函数的返回类型。函数声明只是函数定义的一部分,缺少函数体。在C++中,声明函数的一般形式如下所示: 类型说明符 函数名(参数列表); 其中,类型说明符指明了本函数的类型,函数的类型实际上是函数返回值的类型。而函数名即一个符合C++语法要求的标识符。 定义函数 一个函数的定义由返回类型、函数名、参数列表和函数体组成。前面的三个部分称为函数的声明,或函数原型。相对函数体来讲,也称作是函数头。函数体是一个语句块,由花括号“{”和“}”包围起来。 例如,下面语句根据上述格式定义了一个无参函数hello。 void hello() { cout”Hello World”; } 形参和实参 一般来说,C++中函数的参数可以分为形式参数(形参)和实际参数(实参)两种。所谓实参,是指函数定义时的参数。之所以称作形参,是因为这些参数实际并不存在,只是在形式上代表运行时实际出现的参数。 相对应的,所谓实参,是指函数调用时传入的参数,也是程序运行时实际存在的参数。简单地说,被调用函数与主调用函数之间的通信可以通过参数的传递来实现。 在C++中实参传递给形参时有两种方式:值传递和地址传递。其中,值传递是指实参传递给函数后,系统构建一份实参的副本,其值与实参的值相同。此后函数将针对这份副本进行操作,对原始的实参没有任何影响。 值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。 地址传递过程中,函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,对形参做的任何操作都影响了主调函数中的实参变量。 函数参数传递 在进行函数的声明或定义后,在其他程序中就可以对该函数进行调用了。根据根据参数传递的方式不同,函数调用可分为传值调用和传址调用;根据函数是否有返回值,函数调用可分为无返回值的调用和有返回值的调用。 函数的调用 如果一个函数在其定义中又调用自身,这个过程叫作递归调用,该函数则称为递归函数。递归分为直接递归和间接递归。 在递归调用中,直接递归是指函数直接调用自身,对于一个函数func而言 间接递归也是递归的一种重要形式,其是指A函数调用了B函数,而B函数又调用A函数 递归 main函数 读者知道,每个C++程序都必须要有一个main()函数,main()函数也称为主函数,是C++程序中最重要的函数,所有完整可运行的C++程序都必须有一个唯一的main()函数。 内联函数 在C++中,如果在函数的声明前加上inline关键字,则称为内联函数。对于内联函数,编译器不创建真实的函数,而只是在函数调用处展开(即将函数的代码直接复制到调用处)。这样,在“调用”函数时就不用跳转了,避免了使用真实函数的代价。例如,对于add函数,如果其声明为: inline int add ( int a, int b ); 则在函数调用处,例如: int x = add ( 1, 2 ); 编译后,实际的代码是: int x = 1 + 2; 小结 本章详细讲解的内容主要包括函数的定义、声明和调用,这是在实际程序中使用较多的。通过函数,可以将实现某种功能的一系列语句组织成一个整体,以后使用时只要使用函数名,并传入相应的参数即可。而不必重复实现该功能。因此,本章还重点讲述函数的参数传递、嵌套调用和递归调用等。此外,本章还就内联函数做了简要介绍。 习题 【题目103】下列程序的输出结果是多少? #include iostream using namespace std; int fun(int x,int y) { return x*y;} int main() {
文档评论(0)