变量属性总结

一个变量除了数据类型以外,还有3种属性:

(1)存储类别:C++允许使用auto,static,register,extern4种存储类别

  • auto:自动变量,动态存储方式

                函数中的局部变量,如果不加static声明,默认就是自动变量

  • static:静态变量

                   静态局部变量

                  静态外部变量

  • register:寄存器变量
  • extern:声明外部变量

(2)作用域:指在程序中可以引用该变量的区域

(3)存储期:指变量在内存中的存储周期

下面从不同角度分析它们之间的联系:

  • 从作用域角度分:

     

  • 从变量存储期(存在时间)来分,有动态存储和静态存储两种类型。静态存储是程序整个运行时间都存在,而动态存储则是在调用函数时临时分配单元

  • 从变量值存放的位置来区分

  • 作用域和存储期:

如果一个变量在某文件或函数范围内是有效的,则称该文件或函数为该变量的作用域,在此作用域内可以引用该变量,所以又称变量在此作用域内“可见”,这种性质称为变量的可见性。

存在性指变量没有被销毁,在其存储期内,是存在的 

变量存储类别函数内函数外
作用域(可见性)存在性作用域(可见性)存在性
自动变量和寄存器变量××
静态局部变量×
静态外部变量√(只限本文件)
外部变量

static声明使变量采用静态存储方式,但它对局部变量和全局变量所起的作用不同。对局部变量来说,static使变量由动态存储方式改变为静态存储方式;而对全局变量,它使变量局部化(局限于本文件),但仍为静态存储方式。从作用域角度看,凡有static声明的,其作用域都是局限的,或者局限于本函数内(静态局部变量),或者局限于本文件内(静态外部变量)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值