- 3
- 0
- 约1.7万字
- 约 38页
- 2019-11-06 发布于广东
- 举报
变量的存储类型和生存期 auto自动类型变量: ①声明局部变量时,用auto修饰属自动类型变量,存放在局部数据区,即栈区 。 ②auto局部变量在程序运行到其作用域时在栈区分配,在离开其作用域时即被释放,因此生存期仅在其作用域内。 ③声明局部变量时若省略存储类型,C++编译器默认为auto。 ④自动类型变量未初始化时,其初值不确定。 ⑤全局变量无自动类型。 变量的存储类型和生存期 static静态类型变量: ①声明局部变量时,用static修饰属静态类型变量,存放在全局数据区,即静态区 。 ②static局部变量的生存期:在程序运行中第一次进入其作用域时在静态区分配,离开其作用域时并不释放,只是不能引用,若程序运行中再次进入该static局部变量的作用域,由于该变量已经存在,所以不再分配空间,可直接引用。 static局部变量直到程序运行结束才被释放。 ③static局部变量的作用:是保存函数的运行结果,以便再次调用该函数时,能继续使用上次调用的计算结果。注意,不在其作用域时,不能直接引用;若需引用,可间接实现,即通过该 static 局部变量的地址进行访问(后续章节介绍)。 变量的存储类型和生存期 ④全局变量声明时无论前面加或不加static,都具有静态生存期,因为全局变量都存放在全局数据区,即静态区 。 ⑤但用 static 修饰的全局变量,称为静态全局变量。静态全局变量与一般的全局变量在形式上类似,但含义有所不同,静态全局变量只能在其定义的源文件中有效(该文件中可以有若干个函数),而在该程序的其他源文件中则是无效的;而一般的全局变量可以通过 extern 修饰后,作用于该程序的多个源文件。 ⑥静态类型变量未初始化时,其初值为0。 【例】 # include iostream.h int a = 1 , b = 2 ; //a、b为全局变量,在静态区 int fun ( ) { static int a =3 ; //a为静态局部变量,在静态区 int b = 4 ; //b为auto局部变量,在栈区 a += b ; return a ; } void main ( ) { int a = 5 , b = 6 ; //a、b为auto局部变量,在栈区 cout “a=” a “\tb=” b endl ; for ( int i=1 ; i=3 ; i++ ) { cout “第” i “次调用:” fun( ) endl ; cout “a=” a “\tb=” b endl ; } cout “a=” ::a “\tb=” ::b endl ; } 运行: a=5 b=6 第1次调用: 7 a=5 b=6 第2次调用:11 a=5 b=6 第3次调用:15 a=5 b=6 a=1 b=2 【例】(与上例比较) # include iostream.h int a = 1 , b = 2 ; //a、b为全局变量,在静态区 int fun ( ) { int a = 3 ; //a为auto局部变量,在栈区 int b = 4 ; //b为auto局部变量,在栈区 a += b ; return a ; } void main ( ) { int a = 5 , b = 6 ; //a、b为auto局部变量,在栈区 cout “a=” a “\tb=” b endl ; for ( int i=1 ; i=3 ; i++ ) { cout “第” i “次调用:” fun( ) endl ; cout “a=” a “\tb=” b endl ; } cout “a=” ::a “\tb=” ::b endl ; } 运行: a=5 b=6 第1次调用: 7 a=5 b=6 第2次调用: 7 a=5 b=6 第3次调用: 7 a=5 b=6 a=1 b=2 变量的存储类型和生存期 register寄存器类型变量: ①声明
您可能关注的文档
最近下载
- 河道整治工程施工质量创优计划的实施效果评估与改进策略.docx VIP
- 水利工程质量创优方案(3篇).docx VIP
- 110kv变电站的设计毕业设计(论文).docx VIP
- 华中师范大学《C++程序设计》2020-2021学年第一学期期末试卷.pdf VIP
- 电力系统仿真:电力系统暂态仿真all.docx VIP
- 电力系统暂态稳定性仿真研究毕业设计(论文).docx VIP
- 3 浮力——液面升降问题(原卷版).docx VIP
- 核心素养视域下的初中数学单元作业设计研究.docx VIP
- 纪念红军长征90周年演讲稿(2025年最新版).pptx VIP
- 2002-2012 十年北京卷高考语文试卷深度解析.pdf VIP
原创力文档

文档评论(0)