第 1 部分 数据成分
在讲这一部分前,首先请务必熟悉什么是变量(Variable)。
变量
C++ 中,变量就是指明计算机中的一段存储空间的东西。变量必须拥有一个类型(Type)和一个名字(Name)。
变量是对象(Object)的一种(指有名字的、不是非静态成员的对象)。变量是实体(Entity)的一种。
在 C++ 标准中引用(Reference)也是变量,但在本书中不会这样认为,以避免麻烦。
所以说,变量的本质是存储空间,是计算机存储功能的体现形式。所以变量才可以存放数据——比如上一章中,我们经常使用变量来存放整数数值这样的数据。这些存储空间内存放的数据称为变量的值(Value)。此外,变量的类型被称为变量类型,上一章中我们只用到了一种类型——整数类型 int
。变量的名字被称为变量名。
请注意区别 C++ 中变量与数学上变量的区别。数学上,变量是指可以改变的数;但是在这里变量不一定是可以改变的。也就是说不能通过字面意思就将变量理解为变化的量。在某些情况下,变量的值可能无法改变。
声明并定义
上一章中我们经常提到的“声明并定义”是什么意思呢?这里我也给出说明:
声明(Declaration)是指向代码中引入名字;
定义(Definition)是使得声明引入的名字能够被符合预期地使用的操作。
之所以我们说“声明并定义”是因为,声明和定义是两个过程。对于变量来说,首先声明引入变量名:从此刻开始这个名字就代表一个变量了;其次定义使得该变量能够被使用——刚刚说过,变量的作用是存储数据——因此这个变量就指明了一段存储空间,并可以存储数据了。
回顾我们学过的类似这样的一行代码
int a{42};
,它实际上同时(或者说先后也可以)完成了声明和定义的操作;因此被称为“声明并定义”了一个变量。其中,这个变量的变量类型是整数类型,这个变量的变量名是 a
。
标准中,只有实体才需要定义;非实体的名字只要声明就足以使用。本书不在这里深究。