存储时间和作用域

变量可以有3种不同的存储时间:

自动存储时间

静态存储时间

动态存储时间

1)自动变量

在一对大括号的范围内声明的变量,称为自动变量,具有局部作用域,一个自动变量在“作用域”中的时间从声明他的那一刻开始,一直到包含器声明的代码块结束为止。

由栈内存自动分配。栈默认的容量是1MB.

自动变量“出生”于他被定义之时,占用的空间在栈上分配,结束于与声明该变量之前的第一个开始开始大括号。

每次执行包含一个自动变量声明的语句块是,这个变量就被重新创建。

2)全局变量

在所有代码块和类之外声明的变量称为全局变量,在声明全局变量的位置之后,文件内的所有函数都可以访问他们。如果在程序的最顶部声明了全局变量,那么从文件内的所有位置都可以访问他们。

全局变量的初始化发生在main()函数执行之前,所以在变量作用域的任何代码内,始终可以使用它们。

全局变量被具有相同名称的局部变量隐藏,但是,可以使用作用域解析运算符(::)获得全局变量。

3)静态变量

static在代码的作用域内声明一个变量,但是要让他有静态的存储时间。

在一个代码快内声明,并且只能从这个代码块(或者他的子块)内部使用他,但是在程序的生存期内,他将持续存在。他的作用域仍然是这个代码块,但却却具有静态存储时间。如static int count;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值