变量存储特性与标识作用域
首先:一个被说明的变量,除名字,类型和值的基本特性外,还有其他特性,包括存储,作用域,可见性和连续等特性。
标识符存储特性确定了标识符在内存中的生存时间和连续特性。
c++的一个程序称为一个项目。一个项目可以由多个文件组成。标识符的连续特性决定标识符能否被工程中其他文件引用。
1.存储特性
c++中有两种存储特性,分别为:自动存储,静态存储
1). 自动存储(只有变量才具有的存储特性)
自动存储用关键字 auto 和 register 说明。这种变量在进入说明的块时生成,在结束块时删除。
函数的参数和局部变量都是自动存储的。
auto:为变量默认的存储类型,因此很少用
register:将变量存放在寄存器中(原因可以自己百度查找)
2).静态存储
关键字 extern 和 static 说明静态存储变量和函数标识符。
如果这两个关键字用于说明变量,程序在开始执行时就分配和初始化存储空间;如果用于说明函数时,表示从程序执行开始就存在这个函数名。