4 函数与预处理_变量属性小结.ppt_第1页
4 函数与预处理_变量属性小结.ppt_第2页
4 函数与预处理_变量属性小结.ppt_第3页
4 函数与预处理_变量属性小结.ppt_第4页
4 函数与预处理_变量属性小结.ppt_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、4.13 变量属性小结,一个变量除了数据类型以外,还有3种属性:,(1) 存储类别: C+允许使用auto,static,register和extern 4种存储类别。,(2) 作用域: 指程序中可以引用该变量的区域。,(3) 存储期: 指变量在内存的存储期限。,以上3种属性是有联系的,程序设计者只能声明变量的存储类别,通过存储类别可以确定变量的作用域和存储期。,要注意存储类别的用法。auto, static和register 3种存储类别只能用于变量的定义语句中,而extern只用于声明,如 auto char c; /字符型自动变量,在函数内定义 static int a; /静态局部整型

2、变量或静态外部整型变量 register int d; /整型寄存器变量,在函数内定义 extern int b; /声明一个已定义的外部整型变量,下面从不同角度分析它们之间的联系。,(1) 从作用域角度分,有局部变量和全局变量。它们采用的存储类别如下:, 局部变量 自动变量,即动态局部变量(离开函数,值就消失) 静态局部变量(离开函数,值仍保留) 寄存器变量(离开函数,值就消失) 形式参数(可以定义为自动变量或寄存器变量), 全局变量 静态外部变量(只限本文件引用) 外部变量(即非静态的外部变量,允许其他文件引用),(2) 从变量存储期(存在的时间)来区分,有动态存储和静态存储两种类型。静态

3、存储是程序整个运行时间都存在,而动态存储则是在调用函数时临时分配单元。,动态存储 自动变量(本函数内有效) 寄存器变量(本函数内有效) 形式参数, 静态存储 静态局部变量(函数内有效) 静态外部变量(本文件内有效) 外部变量(其他文件可引用),(3) 从变量值存放的位置来区分,可分为 内存中静态存储区 静态局部变量 静态外部变量(函数外部静态变量) 外部变量(可为其他文件引用), 内存中动态存储区: 自动变量和形式参数, CPU 中的寄存器: 寄存器变量,概括(1):如果一个变量在某个文件或函数范围内是有效的(可以引用的),则称该文件或函数为该变量的作用域,所以又称变量在此作用域内“可见”,这

4、种性质又称为变量的可见性,例如图4.16中变量a、b在函数f1中可见。,概括(2):如果一个变量值在某一时刻是存在的,则认为这一时刻属于该变量的存储期。,图4.16,图4.17,(4) 关于作用域和存储期的概念。图4.16是作用域的示意图,图4.17是存储期的示意图。,表4.表示各种类型变量的作用域和存在性的情况。 自动变量和寄存器变量在函数内的可见性和存在性是一致的。在函数外的可见性和存在性也是一致的。 静态局部变量在函数外的可见性和存在性不一致。 静态外部变量和外部变量的可见性和存在性是一致的。,(5) 用static来声明一个变量的作用有二: (1)对局部变量用static声明,使该变量在本函数调用结束后不释放,整个程序执行期间

温馨提示

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

评论

0/150

提交评论