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

[C课件]4章变量作用域第[函数2].pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  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文档。上传文档
查看更多
[C课件]4章变量作用域第[函数2]

4.3 全局变量和局部变量;4.3.1 变量的存储机制与C++的内存布局;存储区域说明: (1)代码区(Code area):存放程序代码,即程序中各个函数的代码块; (2)全局数据区(Data area):存放全局数据和静态数据;分配该区时内存全部清零,结果变量的所有字节等效初始化为全0。 (3)栈区(Stack area):存放局部变量,如函数中的变量等;分配栈区时不处理内存,即变量取随机值。 (4)自由存储区(Free store area):存放与指针相关的动态数据。分配自由存储区时不处理内存。; 4.3.2 全局变量 ;;4.3.3 局部变量 ;4.3.3 局部变量 ;4.4 函数调用机制 ;4.4 函数调用机制 ; 4.5 作用域与标识符的可见性; 函数中定义的标识符,包括形参和函数体中定义的局部变量,作用域都在该函数内,也称作函数域。;块域【例4.7】 ;;【例4.8】设计函数完成两数交换,用主函数进行测试。 #include iostream.h void swap(int,int); int main() { int a,b; //a,b作用域为main() cout输入两整数:endl; cinab; cout调用前:实参a=a,b=bendl; swap(a,b); //传值 cout调用后:实参a=a,b=bendl; return 0; } void swap(int a,int b) { //a,b作用域为swap() cout调用中…endl; cout交换前:形参a=a,b=bendl; int t; t=a; a=b; b=t; //交换swap()中的a,b的值 cout交换后:形参a=a,b=bendl; };;;函数声明域 ;3 文件域 ;存储类型(storage class)决定标识符的存储区域,即编译系统在不同区域为不同存储类型的标识符分配空间。由于存储区域不同,标识符的生命期也不同。所谓生命期,指的是标识符从获得空间到空间释放之间的期间,标识符只有在生存期中、并且在其自己的作用域中才能被访问。;自动变量为用auto说明的变量,通常auto缺省。局部变量都是自动变量,生命期开始于块的执行,??束于块的结束,其原因是自动变量的空间分配在栈中,块开始执行时系统自动分配空间,块执行结束时系统自动释放空间。故自动变量的生命期和作用域是一致的。;static说明的变量称为静态变量。根据定义的位置不同,还分为局部静态变量和全局静态变量,也称内部静态变量和外部静态变量。静态变量均存储在全局数据区,如果程序未显式给出初始化值,则等效初始化为全0;静态变量占有的空间要到整个程序执行结束才释放,故静态变量具有整个程序执行期间的生命期。;4.6.1 存储类型;4.6.2 生命期; 4.6.2 生命期;4.6.2 生命期

文档评论(0)

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

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

1亿VIP精品文档

相关文档