- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计件第5章
一、变量的作用域和生存期 变量的作用域 变量的生存期 变量在程序中影响范围 变量在程序中起作用的时间 长期性 暂时性 全局变量 局部变量 局部变量 ① 变量只能在当前函数或 当前复合语句中有效。 ② 形式参数是局部变量。 ③ 可以在复合语句中定义 局部变量。 ④ 局部变量可以同名,互 不干扰。 全局变量 ① 在整个程序中有效有效。 ② 全局变量可以和局部变量同名,互不干扰,全局变量之间不能同名。 ③ 在同一个程序中,如果全局变量与局部变量同名,在局部变量的作用范围内,全局变量暂时不起作用,被屏蔽。 ④ 通常情况,建议尽量少使 用全局变量 #include stdio.h int a=3,b=5; max(int a,int b) {int c; c=ab?a:b; return c; } main() {int a=8; printf(%d,max(a,b)); } 二、变量的存贮类别 数据的动态存贮方式和静态存贮方式 程序区 动态存贮区 静态存贮区 存放程序指令 存放暂时性数据 (局部变量) 存放数据长期性 (全局变量) 在C语言中变量的存贮类别有四种 自动型变量 外部型变量 静态型变量 寄存器型变量 说明:auto 作用域:局部 生存期:暂时 存贮区:动态区 说明:extern 作用域:全局 生存期:长期 存贮区:静态区 说明:static 作用域:局部或 全局 生存期:长期 存贮区:静态区 说明:register 作用域:局部 生存期:暂时 存贮区:寄存器 自动型变量auto ?出现范围:出现在函数内部。 ?判别方法:① 定义在函数内部并且缺省存储类别说明 ② 直接auto显式说明 ?作用域:定义该变量的函数或复合语句。 ?生存期:定义该变量的函数或复合语句被执行期间,是局部。 ?存贮区域:动态存贮区 注意: ① 自动变量一般省略auto,函数中的大多数变量都是自动变量。 ② 形参和复合语句里定义的变量也是自动变量。 ③ 自动变量一旦被说明,则只能在说明该变量的函数或复合语句 中出现才有效,离开了上述区域则无效。 ④ 生存期只限于相应函数被调用时,若变量是定义在复合语句 内,则其生存期为该复合语句被执行的期间。 例 5-7 #include stdio.h main() { int a=1; f(a); f(a); } int f(int a) { int b; b=a++; printf(%2d,b); } /*a是局部变量,作用域为main函数内*/ /*a、b都是局部变量,作用域为f函数内, 生存期在调用f函数时*/ 例5-8 #include stdio.h main() { int a=3; { int a=2; printf(%2d,a++);} { int a=0; printf(%2d,a++);} printf(%2d,a++); } 外部型变量extern ?出现范围:可以出现在程序中的任何说明部分。 ?判别方法:① 在函数外部定义,并且缺省extern的变量 ② 用extern显式说明的变量。 ?作用域:从定义该变量的位置起直到本文件结束。 ?生存期:整个程序的执行期。 ?存贮区域:静态存贮区域 注意:① 外部型变量长驻数据的静态存贮区。 ② 外部变量在编译时创建,它只能初始化一次,如 果在定义时没有初始化,系统默认值为0。 ③ 外部变量能被同名的内部变量所屏蔽。 例5-9 #include stdio.h int a,b; main() { a=1; fun(); fun(); } int fun() {b=a++; printf(%5d,b); } 例5-10 #include stdio.h int a,b; main() { a=1; fun(a); fun(a); } int fun(int a) {b=a++; printf(%5d,b); } 静态变量static 静态变量分成静态局部变量和静态全局变量。 静态局部变量 出现范围:出现在函数内部。 判别方法:用static说明的、定义在函数内部的变量。 作用域:定义该变量的函数。 生存期:整个程序的执行期。 静态全局变量 出现范围:可以出现在程序的任何说明部分。 判别方法:用static说明的、定义在函数外部的变量。 作用域:从定义
您可能关注的文档
最近下载
- AutoFormR6实例讲解-拉伸.ppt
- 食品安全主体责任日管控记录表、周排查记录表、月调度记录表(1).docx VIP
- 金元浦-中国文化概论(第四版)第十三章.ppt VIP
- 二杨梅素基二硒醚在肿瘤方面的药物应用.pdf VIP
- 2025年新能源汽车建设项目可行性研究报告(编制大纲).docx
- 一种固定式高倍数泡沫产生器.pdf VIP
- 初中-历史-人教部编版-第19课法国大革命和拿破仑帝国_2020430155529.ppt VIP
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案.docx VIP
- 1.2互联网应用的基本特征(教学课件)-第1册信息科技同步教学(河北大学版2024新教材).pptx VIP
- 某文旅项目施工合同模板.pdf VIP
文档评论(0)