第05章函数与编译处理.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文档。上传文档
查看更多
第5章 函数与编译处理 第5章 函数与编译处理 5.1 函数的定义与声明 5.2 函数值和函数类型 5.3 函数的参数 5.4 全局变量与局部变量 5.5 函数调用机制 5.6 静态局部变量 5.7 递归函数 5.8 内联函数 5.9 函数的重载 5.10 默认参数的函数 5.11 编译预处理 5.12 习题 5.1 函数的定义与声明 5.1 函数的定义与声明 说明: 函数原型和函数定义在函数类型(返回类型)、函数名和参数表上必须完全一致。 函数原型不必包含参数的名字,而只要包含参数的类型。 一个源文件是一个编译单位,不是以函数为单位进行编译 C++ 程序由一个或多个源文件组成 主程序只能有一个,程序执行自主程序开始,由主程序结束而结束 函数的定义必须遵照C++规定的格式,任何函数都由函数头和函数体组成,具体格式如下: 函数类型 函数名 (形参列表) { 函数体 } 函数分类:从用户角度:库函数、自定义函数 从形式:无参函数、有参函数 5.2 函数值和函数类型 5.2 函数值和函数类型 如果被调用函数中没有return语句,为了明确表示函数“不返回值”,要用viod定义无类型。这样系统就保证不使函数带回任何值。 函数也可以不明确声明和定义函数的类型,默认函数类型为int型。 #include iostream.h fun( ); //没有声明函数类型 void main( ) { coutfun( )endl; } fun( ) //没有定义函数类型 { coutthis program have no declaring_type endl; } 5.3 函数的参数 形式参数和实际参数(形参和实参): 在调用函数时,大多数情况下,主调函数和被调函数之间有数据传递关系。而函数之间的数据传递就是靠函数的参数进行的。在定义函数时,函数名后面括号内的变量名为“形式参数”。在调用函数时,函数名后面括号内的表达式为“实际参数”。 5.3 函数的参数 例:#include iostream.h int max(int,int); void main() { int a,b,c; cinab; c=max(a,b); coutmax =c; } int max(int x,int y) { int z; z=xy?x:y; return(z); } 5.3 函数的参数 关于形参和实参说明几点: 实参可以是变量、常量、或表达式,但必须有确定的值。而形参必须是变量。 形参变量,只有发生函数调用时,形参才被分配存储单元,在调用结束时,形参所占的内存单元被释放。 实参与形参的类型必须一致,否则会发生“类型不匹配”的错误。 上例中实参对形参的数据传递是“值传递”。由实参把数据传给形参,并且存储单元与形参是不同的单元,并将实参对应的值依次传递给形参变量。调用结束后,形参单元被释放,而实参单元保留并维持原值。 5.4 全局变量与局部变量 程序的内存区域 从程序中各个变量起作用的范围来看,变量可以分为全局变量和局部变量 在所有函数体外部定义的变量为全局变量,全局变量可以被本文件中的所有函数所使用。 在一个函数的内部定义的变量就是局部变量,局部变量只能在定义它的函数体内使用。 5.4 全局变量与局部变量 全局变量 作用域:从被定义的位置起,至文件结束处止。 说明: 全局变量在程序的全部执行过程中都占用固定的内存单元,而不是仅在需要时才开辟单元,所以其生存期是整个程序运行期间。 全局变量通常在程序顶部定义。 具有初始值,全局变量由编译器建立,并且初始化为0,在定义全局变量时,进行专门初始化除外。 在同一文件中全局变量与局部变量同名时,则在局部变量的作用域内,同名的全局变量不起作用。 5.4 全局变量与局部变量 局部变量 作用域:只局限于本函数内 说明: 局部变量的生存期:只有当程序执行到本函数时,才给这些局部变量分配存储单元,当本函数执行完毕后,这些局部变量所占存储单元就被释放。 不同函数体中可以定义相同名字的变量,但它们代表不同的对象,互不干扰。它们在内存中占用不同的内存单元。 形参是局部变量。 如果局部变量不被显式初始化,那么,其内容是不可预料的。 5.5 函数调用机制 C++的函数调用过程,就是栈空间操作的过程。 栈是一种先进后出或后进先出的数据结构。 建立被调用函数的栈空间 保护调用函数的运行状态和返回地址 传递参数 将控制转交被调函数 例:void

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档