第九章 c言的一些其他概念.ppt

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 c语言标识符的作用域和存储类型 第九章 c语言标识符的作用域和存储类型 第九章 c语言标识符的作用域和存储类型 第九章 c语言标识符的作用域和存储类型 第九章 c语言标识符的作用域和存储类型 第九章 c语言标识符的作用域和存储类型 第九章 c语言标识符的作用域和存储类型 第九章 c语言标识符的作用域和存储类型 * * 阔奥沃行碱屹弗柞尸忧斑窘狞耳盛缕隆赵续慧轧软艇唁蹬再辊顽外殃狂医第九章 c语言的一些其他概念第九章 c语言的一些其他概念 在c语言中标识符必须先定义再使用,那么,定义的语句应该放在什么位置?放在不同的位置有不同的效果吗?这就涉及到c语言的作用域问题了 1、作用域: 在c语言中,标识符所声明的位置不同,它所使用的区间是不同的,这个区间就是标识符的作用域。 根据作用域的不同标识符可以分为局部变量和全局变量2种形式 局部变量: 在函数内部或复合语句内部定义的变量称为—也称为内部变量,函数的参数也属于局部变量。 全局变量: 在函数外部定义的变量叫做---也称为外部变量。 存储类型:变量有2种存储类型即静态类型和动态类型。在这两种类型下又分为4种说明符号 auto(自动)、register(寄存)、extern(外部)、static (静态) 例: auto int a, register int a; 就档词靛押蘑舱铺邓泄打吨罕蝎承攻到凉在倾翰嘻挎吮的声必感甲柱桑衫第九章 c语言的一些其他概念第九章 c语言的一些其他概念 2、局部变量:它即可以是动态类型也可以是静态类型 动态局部变量:可以用2种存储说明 auto和 register auto变量: 在函数内部或复合语句内定义变量时,如果没有指定存储类型,则变量会默认为auto类型。这种类型的变量会自动分配存储单元,函数或语句执行完后会自动释放存储单元的空间另作他用,因此,局部变量的作用域是从定义的位置起,到函数或语句结束为止。 Void fun1(float a) { int i; for(i0) { int n; ………. } } 变量i的作用域是在整个函数fun1内都有效。 变量n的作用域只在for语句中有效。 彼诣唇乓要镑创堆蜜揍一霸殆至兽捕迫赠银差勋躇腔开朗隆宾妈量时静页第九章 c语言的一些其他概念第九章 c语言的一些其他概念 Register变量 寄存器类型也是自动型变量,它与auto变量的区别在于, auto是在计算机的内存中划分变量的存储空间的。 而register是在计算机的cpu中的寄存器中划分存储空间的。 例: void fun1() { int b; register int a; ….. } 变量a是auto型,它的存储单元在内存中 变量b是register型,它的存储单元在cpu的寄存器中。 标踞坏收漂隅阀猪硼盏阀忿瞻挠惑罗刽噪浙胁硝留板颇金裳罐胞茹同态会第九章 c语言的一些其他概念第九章 c语言的一些其他概念 因为register是在cpu的寄存器中声明的不是在内存中所以它没有地址,不能运用指针。而且cpu的寄存器中的空间有限所以在一个程序中所声明的寄存器类型不能过多。但它定义出的变量运行效率比auto型高。 静态局部变量 Static变量 在函数或复合语句内部用static来说明变量时,可以称此变量为静态局部变量 例: void fun1() { static int a; //a就是静态局部变量 } 静态局部变量的作用域和auto register类变量是一样的,但他们有2点不同 硕慕恫语辩良杉傻痊飞国镭御返肘逻如鸽父赴朱孟搞骄惭呢震铃痒赖总铱第九章 c语言的一些其他概念第九章 c语言的一些其他概念 1、静态局部变量在内存中所占用的存储单元,在程序退出变量的作用域时也不会被释放掉,只有在整个程序结束后才会被释放掉。 3、全局变量 全局变量在函数外部任意位置定义。它的作用域是从定义的位置开始,到整个程序结束。 Void fun1(); Void fun2(); Int a; main() {…a++…} Void fun1() {….} Int b ; Void fun2() {…} 变量a是在整个程序开始定义的所以它的作用域是整个程序, 变量b是在函数fun2前定义的所以它的作用域是从fun2开始到程序结束位置。 婚梭仇傲裕檬脉颈润堤敷烷纪纸选都瞻杆碧苟陌缩峻瑚品痊钠登滨期鱼孽第九章 c语言的一些其他概念第九章 c语言的一些其他概念 例: Int t1=10; Fun1(int a) { int b; b=a+ t1; return b; } Main() { printf(“%d”,fun1(t1)); } 当全局变

文档评论(0)

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

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

1亿VIP精品文档

相关文档