基于过程的程序设计.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于过程的程序设计 雷小锋leiyunhui@ 内容纲要 一、基于过程的程序设计概述 二、函数 三、域和生命期 四、函数模板 五、使用泛型 三、域和生命期 程序的多文件结构 可以在多个文件之间共享函数和变量 解决办法:函数声明和变量声明 《extern 》返回类型 函数名(《形参表》); extern 数据类型 变量名; 三、域和生命期 可以在多个文件之间共享函数和变量 解决办法:函数声明和变量声明 三、域和生命期 三、域和生命期 客观世界中的任何事物,其存在于一定的时间和空间范围 空间范围:作用域,简称域 时间范围:生命期 超出自身的作用域和生命期就不可访问 三、域和生命期 作用域:简称域,指标识符能够被使用的空间范围,只有在作用域内标识符才可以被访问(称为可见) 标识符作用域的起点均为标识符说明处 生命期:标识符所代表的对象存在的时间范围 三、域和生命期—函数 作用域:函数在定义或声明之后,就在其所在代码文件中可见可用 ? 函数具有文件作用域,又称全局域 生命期:函数驻留在代码区,程序开始运行时载入,程序执行结束释放 ? 函数具有与程序运行期等长的寿命,称为具有静态生命期 三、域和生命期—变量 (3.1) 变量的作用域 有的变量偏安一隅——局部域 有的变量名扬天下——全局域 (3.2) 变量的生命期 有的变量寿与天齐——静态生命期 有的变量转瞬即逝——局部生命期 有的变量命悬人手——动态生命期 (3.3) 名字空间namespace (3.1) 变量的作用域 变量的作用域分析 函数内部的变量?只在函数范围内可见 函数外部的变量?在文件A.cpp中都可见 (3.1) 变量的作用域—局部域 局部域:包括块域和函数声明域 块域 定义:一对大括号括起来的程序段 规则:块中定义的标识符,作用域在块内 举例: 复合语句是一个块; 函数是一个块,也称作函数域。函数中定义和声明的标识符,包括形参和局部变量,作用域都在函数内。 (3.1) 变量的作用域—全局域 全局域——全局变量 又称文件作用域 定义在所有函数之外的标识符,其作用域从定义处开始,直到整个文件结束,即全局域 文件中定义的全局变量和函数都具有全局域 同名变量的作用域 同名变量的作用域 嵌套块中的同名变量 服从局部优先原则:内层块屏蔽外层块中的同名变量 块内局部变量与全局变量同名 块内局部变量优先 块内可通过域运算符“::”访问同名全局变量 (3.1) 变量的作用域—小结 局部域——局部变量 块域:{},如复合语句、函数域 函数声明域 全局域——全局变量 所有函数的外部 同名变量的作用域 嵌套块中存在同名局部变量 局部变量与全局变量同名 (3.2) 变量的生命期 变量的生命期:从变量获得存储空间到释放存储空间之间的时段。变量只有在其生命期和作用域中才能被访问 (3.2) 变量的生命期 (3.2) 变量的生命期 变量的存储类型决定变量位于哪个存储区,从而决定变量的生命期 C++提供了四种存储类型说明符: auto、 register :自动存储类型 static:静态存储类型 extern:外部存储类型 (3.2) 变量的生命期—自动变量 auto、 register :自动存储类型 用auto说明的变量为自动变量,局部变量都是自动变量。 自动变量位于栈区,具有局部生命期。 自动变量的生命期和作用域是一致的:块开始执行时系统自动分配空间,块执行结束时系统自动释放空间。 (3.2) 变量的生命期—静态变量 static:静态存储类型 用static说明的变量为静态变量 两种静态变量 局部静态变量:定义在局部域的静态变量 全局静态变量:定义在全局域的静态变量 静态变量位于全局数据区,具有静态生命期。若未显式初始化则系统自动将其初始化为全0,且只初始化一次。 (3.2) 变量的生命期—静态变量 局部静态变量 定义在局部域中的静态变量 当局部块域第一次被执行时,编译系统在全局数据区为局部静态变量分配空间并保存数据,直到整个程序结束才释放该空间 局部静态变量具有局部作用域,但却具有全局生命期。 (3.2) 变量的生命期—静态变量 全局静态变量 定义在全局域中的静态变量 全局变量在编译时在全局数据区分配空间,在未显式初始化时系统自动清全0 全局静态变量具有全局作用域和全局生命期 (3.2) 变量的生命期—外部变量 extern:外部变量 用extern说明的全局变量为外部变量 全局变量和函数缺省为外部的,即其作用域可以延伸到程序的其他文件中 在其他文件中通过使用“extern”外部声明可以共享已定义的全局变量和函数 (3.2) 变量的生命期—外部变量 问题1:外部变量声明与全局变量定义的区别? 变量定义时编译器为其分配存储空

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档