- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 标识符的属性(续3) 存储类别 存储类别是指数据的存储方式,存储方式可分为两大类:静态和动态。 静态存储方式是指在程序运行前即为数据分配好存储空间(在静态区),在程序运行期间,数据的存储空间仍保持不变; 动态存储方式则是在程序运行期间根据函数调用(函数被激活)和分程序语句的开始执行(分程序语句被激活)的需要进行动态存储分配。 标识符的存储类别属性是编译过程语义处理、检查和存储分配的重要依据。编译程序一般根据变量的存储类别以及它们出现的位置和次序来确定每一个变量应分配的存储区及在该区中的具体位置。 * 作用域和可视性 标识符在程序中起作用的范围,称为它的作用域。 一般地,定义该标识符的位置及存储类关键字决定了它的作用域。如:C语言中, 动态存储:??????? 自动变量(本函数内有效)??????? 寄存器变量(本函数内有效)??????? 形式参数(本函数内有效) 静态存储:??????? 静态局部变量(函数内有效)??????? 静态外部变量(本文件内有效)??????? 外部变量(其他文件可引用) * 通常一个变量的作用域就是该变量可以出现的场合,也就是说在某个变量作用域范围内该变量是可以引用的,这就是变量可视性的作用域规则。 有两种情况也将影响变量的可视性。 * 1、函数的形式参数和函数外部定义的变量重名:函数的形式参数在函数内可见 。 int a; // 外部定义的整型变量a int func( ) { float a; // 函数内部定义的局部整型变量a, //屏闭了外部定义的整型变量a int b; … … a … // 引用的是函数内部定义的局部实数类型变量a … } * 2、分程序结构 :C语言中分程序语句的语法是: { 声明 语句 } 分程序的一个特点是它的嵌套结构。 分程序结构的声明作用域由下面的最近嵌套规则给出: (1)分程序B中声明的作用域包括B。 (2)如果名字x没有在B中声明,那么B中x的出现是在外围分程序B ?的x声明的作用域中,且满足: (a)B ?有x的声明; (b)B ?比其它任何含x声明的分程序更接近被嵌套的B。 * … {int a; // 第一层头,定义的局部整型变量a … {char a; // 第二层头,定义的局部字符型变量a … { // 第三层头 … {float a; // 第四层头,定义的局部实型变量a … } // 第四层尾 …a… // 引用第二层定义的局部字符型变量a } // 第三层尾 … } // 第二层尾 .... } // 第一层尾 标识符的内部表示 类型的内部表示 值的内部表示 三种内部表示 * 值的内部表示 非结构类型值的内部表示: 实型: 指针: 有序类型:整数形式 * 有序类型的常量表示: 整型常量:ord(N) = N 布尔常量:ord(false)=0, ord(true) = 1 字符常量:ord(C) = ASCⅡ(C) 枚举常量:设有枚举类型(D,A,B),则有 ord(D)=0,ord(A)=1,ord(B)=2 子界常量:设有子界类型C1..C2,则值空间 为[ord(C1)...ord(C2)] * 类型表达式: 如: at = ARRAY[1..10] OF ARRAY[1..100] OF integer; rt = RECORD x : real; a : at; CASE u : boolean OF false:( k : integer ); true :( y: real; b :boolean ) END 类型的内部表示:表示类型表达式所包含的各种信息的数据结构。 类型的内部表示 * 类型的种类属性: 标准、子界、枚举、数组、记录、 集合、文件、指针类型等等。 TypeKind = ( intTy,boolTy,charTy,rea
您可能关注的文档
最近下载
- 劳动教育论文:依托学校种植园培养小学生劳技素养的实践研究.docx VIP
- 《斯特林制冷机》课件.ppt VIP
- 2024北京清华附中初二(上)期中物理(教师版).docx
- 2025领导干部任前廉政法规知识竞赛题库及参考答案.docx VIP
- 三个女性文本和一种帝国主义批评.pdf
- 2023学年新教材高中英语Unit3Festivalsandcustoms写作指导介绍传统节日课件牛津译林版必修第二册.pptx VIP
- 技术要素市场化配置水平测度及区域差异分析.pdf
- 统计预测与决策教材.pdf VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- Prayer X钢琴谱五线谱 完整版原版.pdf
文档评论(0)