2.3 变量
在程序运行期间,值可以改变的量称为变量,可用来存储数据。每个变量都有一个名字和相应的数据类型,名字表示数据所在的内存位置,数据类型则决定了该变量占用内存的大小及值的范围。变量名及类型由变量定义指定,所以变量定义必须放在变量使用之前,即先定义,后使用。变量名和变量值是两个不同的概念,要严格区分。变量定义的位置与变量的作用域相关。
2.3.1 变量的种类
变量有效性的范围称变量的作用域。变量定义的位置不同,其作用域也不同。C++中的变量,按作用域范围可分为两种:局部变量和全局变量。
1. 局部变量
局部变量也称为内部变量。局部变量在函数体中的声明部分定义(局部变量定义的同时直接被声明,所以对局部变量的定义也称为声明)。其作用域仅限于本函数内,离开本函数后不能再使用这个变量。
2. 全局变量
全局变量也称为外部变量,是在函数外部定义的变量。它不属于哪一个函数,它的作用域是整个文件。在函数内使用全局变量之前必须先声明(全局变量的定义和声明是两个不同的概念),即全局变量依次包括定义、声明和使用3个步骤。全局变量的声明符为extern。
变量的作用域限定了变量的有效作用区间,只有在该有效范围内,变量才能被程序访问。如果在同一个源文件中,在不同作用域内可以定义同名变量,使用时,作用域小的变量屏蔽作用域大的变量。