生命周期和作用域

这两个属性决定什么时候以及在什么地方可以使用某个变量

作用域指的是可以使用变量名称的所有语句的总和
根据变量的作用域可以把变量分成三种类型:全局变量,局部变量和块变量
声明在所有函数之外的变量叫全局变量
全局变量的作用域是由程序中的所有语句构成的,没有初始化的全局变量自动初始化为0
声明在函数内部的变量叫局部变量,局部变量的作用域包含函数内部的所有语句
块变量是声明在语句块内部的变量,块变量的作用域包含语句块内部的所有语句

 

生命周期指变量的存储位置可以被使用的时间范围
程序中的所有存储位置都是在某个时刻被分配又在另一个时刻被回收的
全局变量、局部变量和块变量的生命周期也不一样
全局变量的存储位置在程序开始时被分配,在程序结束时被回收。全局变量的生命周期包含整个程序运行期间
局部变量的存储位置在函数开始时被分配,在函数结束时被回收。局部变量的生命周期包含整个函数运行期间
形式参数的生命周期和局部变量一样
块变量的存储位置在语句块开始运行时被分配,在语句块结束时被回收,它的生命周期包含整个语句块运行期间

 

声明变量时可以使用的关键字
1.auto关键字用来声明自动变量,所有局部变量缺省都是自动变量,几乎不需要使用这个关键字
2.static关键字用来声明静态变量,静态变量的声明周期和作用域是和不同相关的,它们不一致
静态全局变量的作用域包括声明它的那个文件中的所有语句
静态局部变量和静态块变量的生命周期包括整个程序运行期间
没有初始化的静态局部变量自动初始化为0
静态局部变量和静态块变量的初始化只在程序开始执行一次
3.const关键字用来声明不可赋值的变量,这种变量应该在初始化的时候赋值,这种变量的内容可以通过其他方式修改
4.volatile关键字用来声明多变的变量,这种变量的内容随时可能被改变,而且这种改变的原因不是我们的语句造成的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值