网站大量收购独家精品文档,联系QQ:2885784924

第4章函数的应用.pptVIP

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§4.1.3 函数参数与返回值 函数参数 形式参数 定义有参函数时,函数名后面括号中的变量名称为形式参数(简称形参) 实际参数 调用函数时,函数名后面括号中的表达式称为实际参数(简称实参) 形参和实参比较 形参变量只有在被调用时才分配内存单元,以便接收从实参传送过来的数据。在调用结束后,会立即释放所分配的内存单元。 实参可以是常量、变量、表达式和函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值。 实参和形参在数量上和顺序上应一致,且类型相同或赋值兼容。 函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 声明和调用举例 4.1.5 函数的嵌套调用 C++中不允许函数的嵌套定义,但却允许函数的嵌套调用,即在调用一个函数的过程中又调用另一个函数. § 4.1.9 内部函数和外部函数 根据函数能否被本文件外的函数调用,可将函数分为内部函数和外部函数。 内部函数 只能被本文件中其他函数调用的函数 形式: static 函数类型 函数名(形参列表) 外部函数 在函数首部的左端添加关键字extern,表示该函数可供其他文件调用 ..; 形式: [extern] 函数类型 函数名(形参列表) 带默认形参值的函数 可以给形参指定默认值,调用函数时若不另行指定实参,系统会自动使用形参默认值。 要求: 定义多参函数的默认参数的顺序为自右到左 如: int mal(int a,int b=3,int c=6,int d=8); §4.3 变量的存储属性 每个变量都有两个属性,即数据类型和存储属性。 存储属性 是指变量在内存中的存储状态 变量在程序中的位置决定了变量的作用域,作用域又关系着变量的存储方式。 §4.3.1 变量的作用域 变量的作用域 任何变量都有其有效范围,这个有效范围称为变量的作用域。 在变量的作用域以外是不能访问这些变量的。 根据作用域的不同,可以将变量分为 局部变量 全局变量 局部变量 定义在函数内部和复合语句中的变量为局部变量,或内部变量。 在一个函数内部定义的变量,只在该函数范围内有效,其作用范围是从定义点处到函数末尾。 使用局部变量还应注意以下几点 函数的形式参数在函数被调用时建立,调用结束后即被释放,因此它的作用域只在函数内部有效; 主函数main()中定义的变量,只在主函数中有效,主函数也不能使用其他函数中定义的变量。 使用局部变量还应注意以下几点 不同函数中可以使用同名的变量,它们代表不同的对象,互不干扰。 在函数声明中出现的参数名,其作用范围只限于本行的括号内。 编译系统对函数声明中的变量名是忽略的,即使在调用函数时也没有为它们分配存储单元。 全局变量 在函数之外定义的变量是全局变量,又称外部变量。 全局变量在定义的同时初始化,若在程序运行中其值发生变化,全局变量将保留变化后的值; 其有效范围是从定义点开始到本源文件结束。 注意 在一个函数中既可以使用本函数中的局部变量,又可以使用有效的全局变量。 在同一个源文件中,若全局变量与局部变量同名,则在局部变量的作用范围内,全局变量被屏蔽。 同一源文件中的所有函数都可以引用全局变量的值,可以利用全局变量增加函数间数据传递的渠道。 避免使用全局变量 全局变量在程序执行的全部过程中一直占用存储单元,会造成内存资源的浪费。 全局变量的使用降低了函数的通用性。 §4.3.2 变量的存储类别 变量在内存中的存在时间叫做变量的生存期。 变量的生存期是由变量的存储方式决定的。 变量的存储方式 静态存储方式 是指程序运行期间,系统对变量分配的固定的存储空间,直到程序执行完毕后,系统才释放该空间。 动态存储方式 是指系统对变量动态地分配存储空间,当程序运行到变量的作用域之外,系统就会释放该变量所占空间。 内存中用户可以使用的区域 变量的存储类别 分为四种: 自动的(auto) [auto] 数据类型 变量名[=初值]; 静态的(static) static 数据类型 变量名[=初值]; 寄存器的(register) register 数据类型 变量名[=初值]; 外部的(extern) extern 数据类型 变量名; 静态的(static) 希望所定义的自动变量的值在函数调用结束后仍然被保留,自动变量的存储空间不被释放,此时可指定该局部变量为静态局部变量. 为静态变量赋初值是在编译时进行的,即只赋值一次,以后每次调用函数时不再重新赋值. 外部的(extern) 用extern声明全局变量,可以扩展全局变量的作用域,使其变成在全局变量作用域以外也可以使用的全局变量. 在同一文件中声明全局变量 * * * * * * *

文档评论(0)

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

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

1亿VIP精品文档

相关文档