存储类别和作用域ppt课件.ppt

存储类别和作用域ppt课件.ppt

ID:59313951

大小:97.50 KB

页数:32页

时间:2020-09-20

存储类别和作用域ppt课件.ppt_第1页
存储类别和作用域ppt课件.ppt_第2页
存储类别和作用域ppt课件.ppt_第3页
存储类别和作用域ppt课件.ppt_第4页
存储类别和作用域ppt课件.ppt_第5页
资源描述:

《存储类别和作用域ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++程序设计第二讲4.6存储类别和作用域成贤学院C++课程柏毅版本号:V2009.084.6存储类别和作用域变量的作用域:是指变量在程序中有效的空间范围,变量的作用域与定义变量的位置有关;变量的生存期:指的是变量生成到变量空间释放的时间范围,变量的生存期与变量的存储类别相关。C++可将作用域分为五种:块作用域、文件作用域、函数原型作用域、函数作用域和类作用域。1.块作用域块:就是用花括号括起来的那部分程序。在块内说明的标识符只能在该块内引用,即其作用域在块内。所有函数体内定义的变量都具有块作用域。在一

2、个函数内或块内定义的变量被称为局部变量;对于块中嵌套其他块的情况,如果嵌套块中有同名局部变量,服从局部优先原则,即在内层块中屏蔽外层块中的同名变量。在函数原型作用域和函数作用域内定义的变量都属于局部变量;【例4.12】局部变量的屏蔽。#includevoidmain(){inti=5;{cout<<"i1="<

3、=5i2=7i3=52.文件作用域在所有函数外定义的变量称为全局变量,全局变量的作用域称为文件的作用域;当局部变量与全局变量同名时,局部变量(块作用域内的变量)优先。它与块作用域不同的是:在块作用域内可通过域运算符“::”来引用与局部变量同名的全局变量。【例4.13】在块作用域内引用文件作用域中的同名全局变量。#includeinti=0;//Avoidmain(){inti=5;//B{cout<

4、}程序运行后结果为:5704.6.2变量的存储类别操作系统为一个C++程序的运行所分配的内存分为4个区域,如图4.2所示。代码区:存放程序代码,即程序中各个函数的代码块静态数据区:存放程序的全局数据和静态数据栈区:存放程序中的局部变量,如函数中的局部变量等堆区:存放动态分配的数据。堆区(动态数据)栈区(函数局部数据)main()函数局部数据静态数据区(全局变量、静态变量)代码区(程序代码)图4.2程序在内存中的区域C++使用四种说明符auto(自动类型)、register(寄存器类型)、static(静

5、态类型)和extern(外部类型)来确定变量的存储类型。加上变量的作用域的不同,在C++中变量共有下列5种存储形式:局部变量、全局变量、外部变量、静态变量、寄存器变量;在函数或块内部说明的变量称为局部变量(如形参变量),由于建立和撤消这些变量是由系统自动完成,因此这类变量又称为自动型变量。注意:a:局部变量仅由说明它的函数或块的内部语句所访问;换言之,局部变量在定义自己的函数或块之外是不可见的。b:局部变量在进入函数时生成,退出时消亡。因此局部变量的生存期仅存在于被定义的函数或块中。1、自动存储变量(局

6、部变量,属于auto型)#includevoidfunc1();voidfunc2();voidfunc1(){intx;x=10;cout<

7、能在两次调用之间保持。在C语言中,必须在函数或语句块的开头先于其它任何语句说明所有的局部变量。但在C++中,只需在变量使用之前说明就可以了。(结果为:10-19920)与局部变量不同,全局变量在任何函数之外说明,包括main函数,并且可被任何一个函数使用。全局变量将在整个程序运行期间保持有效,同时可被函数内的任何表达式访问。说明全局变量的最佳位置在程序的一开始。2、全局变量#includeintcount;voidfunc1();voidfunc2();voidfunc1(){i

8、nttemp;temp=count;func2();cout<<“countis:”<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。