c++中的变量

[i][b]本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/935[/b][/i]

今天研究了下变量,现在分享一下:
变量是有属性的,包括:变量的数据类别、变量的存储类别,其中,我们根据变量的存储类别又可以得知变量的作用域和存储期两个属性。
关于类别就不赘述了,但有可能会在typedef一文中解释下。下面重点来看变量的存储类别。
首先,看一下存储类别的定义:是数据在内存中存储的方法。存储方法分为静态存储和动态存储。具体包含四种:自动的(auto),静态的(static),寄存器的(register)和外部的(extern)。
其中静态存储和动态存储决定了变量的存储器是静态存储期还是动态存储期。
对于动态存储变量,当程序运行到该变量时才为其分配存储空间,当程序运行到该变量所在作用域的结束处时自动收回为其分配的存储空间,因此它的存储期为所在作用域的时间。这些变量一般是1)函数形式参数2)函数中的自动变量
对于静态存储变量,在程序开始就执行就为其分配存储空间,直到程序结束时,才收回变量的存储空间,其生命周期为整个程序执行的过程。这些变量一般是全局的或者静态的
接下来,详细介绍一下四种存储方法;
1 、自动的(auto)
函数中的局部变量,如果不用static加以声明,编译系统对它们是动态分配存储空间的。
2、静态的(static)
有两种,全局的和静态的,即在程序运行的过程中始终是占用一个存储空间。
3、寄存器的(register)
动态分配方式,编译器不为寄存器类型的变量分配内存空间,而是直接使用cpu的寄存器。以便提高对这类变量的存取速度。主要用于不需要长期保存的变量。
4、外部的(extern)
只能用来声明已经定义的全局(外部)变量,
有两种情况下需要使用全局(外部)变量,
(1)在同一源程序文件中,当在全局的定义之前使用了该变量,在使用前要对该变量进行外部类型变量声明。
(2)当程序有多个文件组成时,若在一个源文件中要引用在另一个源文件中定义的全局变量,在引用前必须对所引用的变量进行外部声明。
如果在某文件中定义的全局变量不想被其他文件所调用,则必须将该变量声明为静态全局变量,也就是说,静态全局变量只能供所在的文件使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值