上QQ阅读APP看书,第一时间看更新
2.2.3 变量
在程序的执行过程中其值可以变化的量称为变量,变量是需要用名字来标识的。
1.变量的声明和定义
像常量具有各种类型一样,变量也具有相应的类型。变量在使用之前需要首先声明其类型和名称。变量名也是一种标识符,因而给变量命名时,应该遵守2.1节中介绍的标识符构成规则。在同一语句中可以声明同一类型的多个变量。变量声明语句的形式如下:
数据类型 变量名1,变量名2,…,变量名n;
如,下列两条语句声明了两个int型变量和3个float型变量:
int num,total;
float v,r,h;
声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但是声明并不一定引起内存的分配。而定义一个变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应内存单元的命名。在C++程序中,大多数情况下变量声明就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外。关于外部变量在后续章节中介绍。在定义一个变量的同时,也可以给它赋予初值,而这实质上就是给对应的内存单元赋值。例如:
在定义变量的同时赋初值还有另外一种形式,例如:
int a(3);
2.变量的存储类型
变量除了具有数据类型外,还具有存储类型。变量的存储类型决定了其存储方式,具体介绍如下。
auto存储类型:采用堆栈方式分配内存空间,属于暂时性存储,其存储空间可以被若干变量多次覆盖使用。
register存储类型:存放在通用寄存器中。
extern存储类型:在所有函数和程序段中都可引用。
static存储类型:在内存中是以固定地址存放的,在整个程序运行期间都有效。
对于初学编程的读者,在此可以先不必注意存储类型,在学习了后续章节中有关变量的作用域与可见性后,便会对变量的存储类型有进一步的理解。