全国计算机等级考试实用应试教程二级C语言_第12章_C语言中用户标识符的作用域和存储类.ppt_第1页
全国计算机等级考试实用应试教程二级C语言_第12章_C语言中用户标识符的作用域和存储类.ppt_第2页
全国计算机等级考试实用应试教程二级C语言_第12章_C语言中用户标识符的作用域和存储类.ppt_第3页
全国计算机等级考试实用应试教程二级C语言_第12章_C语言中用户标识符的作用域和存储类.ppt_第4页
全国计算机等级考试实用应试教程二级C语言_第12章_C语言中用户标识符的作用域和存储类.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在牙齿章节中,12.1本地变量、全局变量和存储分类12.2本地变量及其作用域和寿命12.3全局变量、作用域和寿命12.4函数存储分类、第12章c语言的用户标识符的作用域和存储类、12.1本地变量、全局变量和存储分类12.1.1用户标识符的变量区域标识符的范围指向程序的一部分。例如,变量具有变量区域本身,在一个函数中定义的变量可以在另一个函数中引用变量的作用域和定义语句与程序中出现的部分直接相关。因此,可以区分局部变量和全局变量。12.1.2局部变量、全局变量和存储分类1局部变量函数(或复合语句)内定义的变量称为内部变量,这些变量只能在定义这些变量的函数(或复合语句)中使用,不能在定义它们的函数

2、(或复合语句)之外使用。这些变量称为“本地”,例如float func 1(int a)int b;/*牙齿函数变量a、b有效*/、几个茄子说明:(1)主函数中定义的变量m和n是局部变量,仅对主函数有效,对其他函数无效。(2)可以在徐璐其他函数中使用相同名称的变量,表示徐璐其他目标,不会妨碍徐璐。在Func1函数中定义的B和func2函数中,B徐璐占据其他存储设备,是徐璐其他变量。(3)格式参数也是局部变量。格式参数也仅在牙齿函数内有效,不能进行其他函数调用。格式参数A仅在func1函数内有效,格式参数X,Y仅在func2函数内有效。(4)函数内部复合语句中定义的变量仅对该复合语句有效,出现复

3、合语句时无效。在函数启动时定义的变量也可以与复合语句中的变量相同,但不是表示相同的变量,而是徐璐占用不同的存储设备。2在全局变量函数外部定义的变量称为外部变量,外部变量为全局变量,全局变量可以是牙齿源程序中所有其他函数的公用变量。有效范围从定义变量的位置开始,一直到源文件的结尾。示例:int m、n;/*退出节目*/void f1(a,b) int a,b;几个茄子说明:(1)全局变量必须在函数外部定义,如变量a、c、m、n。(2)全局变量有效范围从定义的位置到整个程序的结束。a和C的有效范围是整个程序,但是M和N的有效范围只有f1函数(3),在一个函数内,局部变量及其全局变量都可以使用。(4

4、)局部变量可以与全局变量名称相同,如果名称相同,则函数中使用的变量为局部变量。3存储的分类变量具有数据类型,C语言的编译系统根据变量的数据类型为变量分配存储空间来存储变量的值。换句话说,变量的数据类型决定变量占用的存储单元数。变量有四种茄子存储类型:自动、寄存器、静态和外部参照,描述符分别为auto、register、static和extern。12.2局部变量、作用域和寿命12.2.1 auto变量在函数内部或复合语句内定义变量时,如果未指定存储类或使用auto说明符,则假定定义的变量具有自动类别。范例:float a;与自动浮点a相同。12.2.2注册表变量寄存器变量也是自动类变量。牙齿变

5、量与auto变量的不同之处在于,寄存器变量不是像常规变量那样占用内存单元,而是分配给CPU的常规寄存器。在12.2.3静态存储类的本地变量函数主体(或复合语句)中,使用static说明可以称为静态本地变量的变量。作用域与auto、register类型的变量相同。12.3全局变量、作用域和寿命12.3.1全局变量作用域和寿命全局变量静态类别。全局变量名称可以使用extern和static说明符。全局变量是在函数外部的任意位置定义的变量,作用域从变量定义的位置开始,一直到整个源文件结束。12.3.2在同一编译单元内,通过extern描述符扩展全局变量作用域全局变量定义位于引用函数之后,则必须使用e

6、xtern说明函数内的所有牙齿变量,以通知编译器不再需要打开存储设备。现在,从extern说明扩展到作用域函数结尾。与定义不同,全局变量说明只能出现一次定义,并且定义全局变量时不能使用extern说明符。全局变量说明可以在需要的地方出现多次,并且必须用extern进行说明。如果使用12.3.3 extern说明符徐璐在其他编译单元中扩展全局变量作用域c语言,则可以单独编译的每个源文件称为编译单元,如果程序由多个编译单元组成,并且每个文件需要相同的全局变量引用,则在每个文件中定义一个具有所需名称的全局变量,这是“连接”牙齿的解决方法,通常是在档案之一中定义所有变量,然后在使用这些全局变量文件的其

7、他文件中使用extern声明这些变量已在其他编译单元中定义,这样编译器就不必再打开存储设备,使用12.3.4静态全局变量静态描述符描述全局变量时,牙齿变量称为静态全局变量。静态全局变量仅限于牙齿编译单元,不能被其他编译单元引用。12.4函数存储分类12.4.1说明了函数外部函数(使用extern)牙齿可以由其他文件中的函数()调用的函数(在函数定义中,如果在“类型指示符”前附加“extern”,则为外部函数)。定义格式如下:extern类型指示符函数名称(格式引用说明列表)如果在定义函数时忽略extern,则抑制外部函数。如果使用12.4.2 static只能在牙齿文件的其他函数内调用一个函数描述函数,而不能在其他源文件中的函数(内部函数,也称为静态函数)内调用一个。定义内部函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论