第2章 函数和作用.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 函数和作用

第2章 函数的定义 当设计较大程序时,通常需要用若干个模块来实现较复杂的功能,而每一个模块自成结构,用来解决一些子问题。这种能完成某一独立功能的子程序模块,在C++中成为函数。 可见,函数是实现模块化程序的基本单位。 事实上,函数还能体现代码重用的思想,因为一个函数可以在同一个程序中被多次调用或在多个程序中被调用。 第2章 函数和作用域 2.1 函数定义和调用 2.1 函数定义和调用 (3)自定义函数是用户根据程序的需要,将某一个功能相对独立的程序定义成的一个函数,或将解决某个问题的算法用一个函数来组织。 与变量的使用规则相同,在C++程序中一定要先说明和定义函数,然后才能调用函数。 C++中每一个函数的定义都是由4个部分组成的,即函数名、函数类型、形式参数表和函数体,其定义的格式如下: 2.1.1 函数定义 2.1.1 函数定义 2.1.1 函数定义 (4) 若函数类型为void时,则表示该函数没有返回值。但仍然可以在函数体中使用return语句“return?;”,此时可将“return;”语句理解为是函数体花括号“}”的作用,当流程遇到函数体的“}”时,函数调用结束,控制权返回给主调函数。例如: void f1( int a) { if (a 10) return; // return;一旦执行,后面的语句不再 被执行 … } 当a10条件满足时,“return;”语句将控制权返回给主调函数。 2.1.2 函数的调用和声明 2.1.2 函数的调用和声明 2. 函数的调用 函数调用的一般格式为: 函数名( 实参表 ); 调用函数时要注意:实参与形参的个数应相等,类型应一致,且按顺序对应,一一传递数据。 例如,下面的示例用来输出一个三角形的图案。 2.1.2 函数的调用和声明 2.1.2 函数的调用和声明 程序运行的结果如下: 代码中,main函数的for循环语句共调用了5次printline函数(A句),每次调用时因实参i+1值不断改变,从而使函数printline打印出来的星号个数也随之改变。 2.1.2 函数的调用和声明 3. 函数的声明 由于前面函数printline的定义代码是放在main函数中调用语句A之前,因而A语句执行不会有问题。 但若将函数printline的定义代码放在调用语句A之后,即函数定义在后,而调用在前,就会产生“printline标识符未定义”的编译错误。 此时必须在调用前进行函数声明。 2.1.2 函数的声明 2.1.3 值传递 2.1.3 值传递 值传递的特点是: (1) 若实参指定是一般变量,则传递的是实参变量的值而不是实参变量的地址。 (2) 在执行函数代码时,由于对实参数据的操作最终是在形参的内存空间中进行,因此形参值的改变只是改变了形参的内存空间存储的值,而不会改变实参变量所对应的内存空间的值。 也就是说,即使形参的值在函数中发生了变化,函数调用结束后,实参的值不会受到影响。例如: 2.1.3 值传递 2.1.3 值传递 2.1.4 函数的默认形参值 2.1.4 函数的默认形参值 这样,当有调用 delay(); // 和delay(1000)等效 程序就会自动将loops当作成1000的默认值来进行处理。 当然,也可在函数调用时指定相应的实际的参数值, 例如: delay(2000); // 形参loops的值为2000 2.1.4 函数的默认形参值 在设置函数的默认形参值时要注意: (1) 当函数既有原型声明又有定义时,默认参数只能在原型声明中指定,而不能在函数定义中指定。 例如: void delay(int loops); // 函数原型声明 // … void delay(int loops = 1000) // 错误:此时不能函数定义中指定默认参数 { // … } 2.1.4 函数的默认形参值 2.1.4 函数的默认形参值 (3) 当带有默认参数的函数调用时,系统按从左到右的顺序将实参与形参结合。 当实参的数目不足时,系统将按同样的顺序用声明或定义中的默认值来补齐所缺少的参数。 例如: 2.1.4 函数的默认形参值 2.2 C++函数特性 在C++中,函数还有:嵌套调用、重载、内联调用以及递归调用等特性,相应的函数被称为嵌套函数、

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档