网站大量收购闲置独家精品文档,联系QQ:2885784924

c语言程序上设计课件第5章.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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说明的、定义在函数外部的变量。 作用域:从定义

文档评论(0)

150****4233 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档