- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言程序结构
第6章 C++语言程序结构 6.1 基本概念 6.2 编译预处理命令 6.3 C++程序文件的组织 6.4 命名空间 不同的程序结构而产生共享程度不同 6.1 基本概念 6.1.1 标识符的作用域与可见性 1.作用域 标识符的作用域指的是它在程序文件中的有效范围。 (1)局部作用域 ①函数原型作用域 void exp(int a, float b); //a和b的作用域仅限在圆括号内 ②块作用域: 在某一个函数的完整定义中或是复合语句中说明的标识符,其作用域是块作用域,它的有效范围是从该标识符被说明处开始,到函数定义完成或复合语句的结束。 void fun(char c) { cinc; if(c=’a’c=’z’) { char xc; xc=c-32; coutxcendl; } coutendl; } 用户自定义类型时为各成员命名所说明的标识符也具有局部作用域,如结构体和类的成员其标识符仅在该成员可被合法使用的地方有效。 struct stu { int id; char name[8]; }; void main( ){ struct stu A; A.id=1; strcpy(A.name,”zhang”); id=10; } (2)全局作用域 没有被任何定界符限定起来的标识符,具有全局作用域,有效范围起始于该标识符被说明的地方,终止于整个文件结束。 int x,y; void main( ) { cinxy; coutx+yendl; } 2.可见性:标识符在作用域内可以使用 “靠近”原则: 多层包含取内层 int a=1; void f( ) { int a=0; a++;//a=? } 6.1.2 存储类型与生存期 1.存储类型 存储类型是指变量创建后以何种方式存在于物理内存中。在C++语法规则中变量的存储类型有4种,auto、register、static和extern,说明变量的存储类型的方法是: [存储类型] 类型 变量名表; 6.1.2 存储类型与生存期 1.存储类型 (1)auto(自动的)——具有局部作用域的变量默认的存储类型,自动变量被存储在用户区的动态存储区中。 (2)register(寄存器的)——局部作用域的变量加register修饰后,变量被存储在处理器特定的寄存器组中,该区域的存取速度高于一般内存。 (3)static(静态的)——变量被存储于用户区的静态存储区中,如果是具有全局作用域的变量被static修饰,则该变量不可以在本文件以外的地方被引用。 (4)extern(外部的)——具有全局作用域的变量默认的存储类型,变量被存储于用户区的静态存储区中,该变量可以被本文件以外的其他文件使用。 2.生存期 变量的生存期是指变量被创建成功直至消亡之间的阶段。生存期最本质的意义在于,变量在其生存期内将占有并保持它的内存空间。 生存期分为静态生存期和动态生存期两种: 自动变量和寄存器变量在程序运行之后随时被创建,其作用域结束后被撤消,所以这种变量的生存期要小于程序的运行期,称为动态生存期; 静态变量和外部变量在程序编译时即获得存储空间,并一直保持到程序运行结束,与程序的运行期相等,称为静态生存期。 int a=100; void fun( ){ int b=10; cout++aendl; cout++bendl; } void main(){ fun( ); fun( ); } 6.1.3 全局变量和局部变量 1. 全局变量 全局变量它在程序的整个执行过程中都存在。 全局变量可以被两种关键字修饰,extern与static。 在全局作用域中定义的变量,如果没有指定显式的初始值,则该存储区被初始化为0。 int var1 = 0 ; int var2 ; static int var3; 关键字extern 为声明但不定义一个变量提供了一种方法。extern 声明不会引起内存被分配,它可以在同一文件中或同一程序的不同文件中出现多次。 既指定了关键字extern,又指定了一个显式初始值的全局变量声明将被视为该变量的定义。 如 extern double pi = 3.1416 ; 关键字static则将全局变量的使用限定在了当前文件中。 #include iostream using namespace std; e
您可能关注的文档
- 单处理器调度算法的实现.doc
- 图像选取的创建与编辑.ppt
- 数项级数的概念和性质.ppt
- 文档序列化.doc
- 1 集成数模转换器(dac)2 集成模数转换器(adc).ppt
- 2010年石油大学(北京)调剂信息.doc
- 2安徽建筑大学本科专业评估参考指标和等级标准.doc
- 4 过程定义伪指令proc、endp.ppt
- 《文化生活》第二 单元知识点总结.doc
- 一元函数积分的概念、性质与基本定理.doc
- 2025年大规格瓷砖市场需求及技术升级趋势分析报告.docx
- 2026年水文地质学基础测试题库含完整答案【夺冠系列】.docx
- 2026年中考化学总复习第一部分考点攻略第3节碳和碳的氧化物.pdf
- 2026年水文地质学基础测试题库及答案(易错题).docx
- 2026年水文地质学基础测试题库及完整答案【典优】.docx
- 2026年水文地质学基础测试题库及答案(基础+提升).docx
- 2026年水文地质学基础测试题库及完整答案【各地真题】.docx
- 2026年水文地质学基础测试题库及参考答案(模拟题).docx
- 2026年水文地质学基础测试题库及答案【名校卷】.docx
- 2026年水文地质学基础测试题库含答案【培优b卷】.docx
原创力文档


文档评论(0)