面向对象程序设计02-5.作用域.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文档。上传文档
查看更多
面向对象程序设计02-5.作用域

作用域和存储类型 引例 变量的作用域和生存期 主要讲述: 1、当变量被定义后,变量的作用范围是什么? —— 变量的作用域 2、变量分配在内存的何处? ——变量存储空间 3、何时分配和释放变量的内存空间? —— 变量的生存期 变量的作用域和生存期 一、变量的作用域 变量在程序中的作用(有效)范围称为变量的作用域。 变量的作用域和生存期 1、局部变量 局部变量的定义位置: (1)函数体内 (2)语句块内 (3)函数的形式参数 局部变量空间的分配与释放: 随其所在的函数被调用而被分配内存空间,并随其所在的函数调用结束而消失(释放内存空间)。 示范实例 示范实例 示范实例 变量的作用域和生存期 1、局部变量 优点: 解决了变量同名问题。 提高了内存利用率。 数据安全性较好。 变量的作用域和生存期 2、全局变量 全局变量的定义位置:函数外部定义 作用域:从它定义的位置开始至源文件结束(文件作用域),即全局变量能够被位于其定义位置之后的所有函数(属于本源文件的)共用。 全局变量空间的分配与释放: 定义时被分配内存空间,并随其所在的文件结束而消失(释放内存空间)。 示范实例 示范实例 变量的作用域和生存期 2、全局变量 全局变量在程序执行的整个过程中,始终位于全局数据区内固定的内存单元;如果程序没有初始化全局变量,系统会将其初始化为0。 示范实例 阅读并理解下面的程序,判断程序的输出 结果。 示范实例 阅读并理解下面的程序,判断程序的输出 结果。 二、变量的生存期 变量在内存中存在的 时间称为变量的生存期。 变量的作用域和生存期 二、变量的生存期 变量在内存中存在的时间称为变量的生存期。 变量的生存期是通过其存储类型来体现的: 1)静态存储方式 2)动态存储方式 变量的作用域和生存期 1、auto : 自动类型。只能放在局部变量声明前(默认)。 自动变量具有自动生存期,从变量被声明开始分配存储空间,到所在代码块结束为止释放存储空间。 变量的作用域和生存期 2、register : 寄存器类型。只能放在局部变量声明前。 是一种特殊的自动类型。寄存器变量中的数据存储于CPU的寄存器中,而不是内存中,存取速度快。 一般只有 int 型变量可声明为寄存器变量。 变量的作用域和生存期 3、static : 静态类型。既可放在局部变量前,又可放在全局变量前。 局部静态变量:     作用域为局部,但确为其分配了一个永久的存储空间,直到本源程序文件结束才释放存储空间。静态局部变量可以自动初始化为0 ,且只赋初值一次。 全局静态变量: 作用域为全局,但只在本源程序文件中保留其存储空间。 示范实例 示范实例 阅读并理解下面的程序,判断程序的输出 结果。 变量的作用域和生存期 4、extern : 外部类型。只能放在全局变量声明前。 当在一个文件中声明了一个全局变量,并在其他文件中使用 extern 声明该变量,则该全局变量也可用于其他文件,即扩展了全局变量的作用域。 给定b的值,输入a和m,求a×b和am的值。 变量的作用域和生存期 小结 C++的内存布局 * *   函数 f 和主函数中都使用了变量i ,它们的值会发生混乱吗?   如何解决变量同名问题? 限制变量的 作用范围 内存和寄存器 全局变量和局部变量 静态变量和动态变量 变量的作用域 块作用域 文件作用域 变量 局部变量 全局变量 它们只能在本块内使用,不能被其它块直接访问。 块作用域 t 的作用域 c 的作用域 a 和b 的作用域 error C2065: t : undeclared identifier 局部变量 编写一个函数,求出三个整数中的最大值和最小值。 输入输出在主函数中完成。 分析: ① 函数名fun。 ② 形参:3个int 型变量,接收用于比较的数据; 2个int 型引用,用于返回最大值和最小值。 ③ 函数返回值类型为void 。 ④ 函数体:选择结构 。 方法一:利用参数的引用传递方式返回 两个运算结果给主调函数。 局部变量。 同名局部变量 内层屏蔽外层 全局变量。 函数间传递参数可以使用全局变量 编写一个函数,求出三个整数中的最大值和最小值。 输入输出在主函数中完成。 分析: ① 函数名fun。 ② 形参:3个int 型变量,接收用于比较的数据。 ③ 函数返回值类型为void 。 ④ 函数体:选择结构 。 方法二:利用全局变量实现将被调函数的 两个运算结果返回给主调函数。 全局变量 局部变量 max , min 有效

文档评论(0)

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

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

1亿VIP精品文档

相关文档