
2.4 变量
计算机处理的信息中有一部分数据是存在的,但是具体值却是未知的,如一堆煤、一车人等,一堆煤的质量是不确定的,一车人的人数也是不确定的。处理这些存在但是具体值不确定的数据时就需要用一种符号(标识符)去指代它们。这种指代在C++语言中被称为变量。
2.4.1 定义变量
变量就像一个盒子,根据数据类型不同可以定义为不同类型的盒子,需要处理几种数据就定义几种类型的盒子。定义变量的C++语句称为变量的声明。变量的声明由数据类型、变量名与分号三部分组成,其语法形式如下。

也可以使用逗号分隔符同时声明多个同类型的变量,语法形式如下。

变量的数据类型会说明后续变量名所指代的数据为哪一类。如果声明为整型,那么对应的变量的类型也为整型,指代的数据为整型数据。
【示例2-15】下面定义一个int类型变量a与多个float类型变量b、c、d。

2.4.2 变量名
变量名就是变量的名字,在设置变量名时必须遵循标识符命名规则,另外还建议遵循以下几条规则。
❑ 见名见意,即看到变量的名字能直接或间接明白该变量指代的数据内容。例如,age一般指代年龄数据。
❑ 尽量不用汉语拼音。因为汉语拼音会出现同音不同意的问题,所以尽量避免使用。例如,变量jishu可以指代“技术”也可以指代“奇数”。
❑ 命名不宜过长。名字过长会增加阅读困难,并且容易编写错误。
❑ 建议采用驼峰标记法和匈牙利标记法来命名变量。
2.4.3 变量的初始化
在声明变量之后,需要将该变量指向某个数据,也就是将一个值赋给变量。这个过程称为变量的初始化。声明变量只是告诉计算机我要占用一块内存,具体大小由数据类型决定。然后,将数值赋给指定变量,这样才能对数据进行处理。
变量的初始化语法形式如下。

在声明变量时也可以实现初始化,其语法形式如下。

在变量初始化时,会用到赋值运算符(=)。该运算符会将右侧的值指定给左侧的变量。在赋值时,值的类型一定要符合变量的数据类型。
【示例2-16】如果变量只声明不初始化会出现错误。

程序运行结果如图2.33所示。

图2.33 错误提示