C++ 语言变量的定义、声明和初始化
1. 定义变量
每种变量都存储一种特定的数据,在定义了变量后,它可以存储的数据类型就是固定的。存储整数的变量,就不能存储小数。
1.1 命名变量
变量的名称可以是任意字母和数字的序列,其中下划线 _
算作字母,其他字符则不允许使用。名称必须以字母或下划线开头,通常表明所存储的信息的种类。名称也称为标识符。
在 Visual C++ 中,变量名最长可以有 2048 个字符。使用长名称会使程序难以阅读且很难输入。
最好避免使用以下划线开头、且包含大写字母的名称,它们可能与相同形式的标准库名称发生冲突。由于同样的原因,还应当避免使用以双下划线开头的名称。
8_Ball
、7Up
和 6_pack
不是合法的名称,Hash!
或 Mary-Ann
也不是合法的名称,Maiy_Ann
是合法的。Mary Ann
不是合法的名称,因为变量名不允许有空白。名称 republican
和 Republican
是不同的,因为名称是区分大小写的。一个常见的约定是类名以大写字母开头,变量名以小写字母开头。
1.2 关键字
关键字是 C++ 中的保留字,它们在该语言内有特殊的意义。关键字不能用作代码中的名称。关键字和名称一样,也是区分大小写的。
编辑器用特定的颜色突出显示关键字,默认为蓝色。如果没有突出显示关键字,那么说明输入了不正确的关键字。修改颜色:Tools -> Options -> Environment -> Fonts and Colors 选项。
2. 声明变量
变量声明是一个语句,指定变量的名称和类型。
int value;
这个语句声明了一个名称为 value 的变量,可以存储整数。在变量 value 中可以存储的数据类型由关键字 int
指定,所以只能使用 value 存储 int
类型的数据。
一个声明可以指定几个变量的名称:
int cost, discount_percentr, net_price;
比较好的方法一般是用一个语句声明一个变量,每行只写一个语句。
为了存储数据,需要将一段计算机内存与变量名关联起来,这个过程称为变量定义。除了一些特殊情况之外,变量声明也是一个定义,它引入了变量名,并将它与适当容量的一段内存联系起来。
int value;
既是一个声明,又是一个定义。已声明的变量名 value 用来访问与之关联的一段计算机内存, 这段内存可以存储一个 int
类型的值。必须在第一次使用变量之前声明它,最好在接近于首次使用变量的位置声明它们。
3. 初始化变量
在声明变量时,可以给它赋予初始值。将初始值赋给变量的声明称为初始化。初始化有三种语法形式,推荐方式是使用初始化列表。
3.1 变量的初始化方法 1 - 变量赋值法
下列语句给每个变量赋予一个初始值:
int value = 0;
int count = 10;
int number = 5;
value 的值是 0,count 的值是 10,number 的值是 5。
3.2 变量的初始化方法 2 - 函数表示法
初始化变量的第二种方式是使用函数表示法。此时不使用等号和数值,而是把数值写入变量名后面的圆括号内。
声明可以表示为:
int value (0);
int count (10);
int number (5);
3.3 变量的初始化方法 3 - 初始化列表
初始化变量的推荐方式是初始化列表。
前面的声明可以重写为:
int value {};
int count {10};
int number {5};
初始值放在变量名后面的花括号中。如果花括号为空,例如 value 的定义,假定 value 的值是 0。这种记号由 C++11 标准引入,前面两种方法仍是有效的,目前第三种是推荐方式。因为这种记号可以用在几乎每种情形下,使初始化统一起来。
如果没有提供初始值,变量就通常将包含前一个程序在该变量占用的内存中留下的无用信息。尽可能在定义变量时进行初始化。如果变量一开始就有已知值,在出错时就比较容易解决所发生的问题。有一件事是确定的,一定会出现差错。
References
Ivor Horton’s Beginning Visual C++ 2013
(美) Ivor Horton 著, 李周芳, 江凌 译. Visual C++ 2013 入门经典[M]. 第 7 版. 清华大学出版社, 2015.
http://www.wrox.com/WileyCDA/WroxTitle/productCd-1118845714.html