2.2 变量
变量提供了一个具名的、可供程序操作的存储空间。每个变量都有其数据类型。“变量”和“对象”一般可以互相交换使用。
2.2.1 变量定义 形式:首先是类型说明符 随后紧跟一个或多个变量名组成的列表,其中变量名以逗号分隔,最后以分号结束。
int sum = 0, value,units_sold = 0;
Sales_item item ;
何为对象?
对象指的是一块能存储数据并具有某种类型的内存空间。对于已经命名了的对象叫做变量
初始值 当对象创建时获得了一个特定的值,我们说这个对象被初始化了。用于初始化变量的值可以是任意复杂的表达式。当一次定义了两个或者多个变量时,对象的名字随着定义也就马上可以使用了。因此在同一条定义语句中,可以用先定义的变量值去初始化后定义的其他变量。
double price = 109.99, discount = price * 0.16;
在C++语言中,初始化和赋值是两个完全不同的操作。初始化的含义是创建变量时赋予其一个初始值,而赋值的含义时把对象的当前值擦除,而以一个新值来替代。
列表初始化
int uints_sold = 0;
int uints_sold = {0};
int uints_sold{0};
int uints_sold(0);
作为C++11新标准的一部分,用花括号来初始化变量得到了全面应用。
默认初始化
如果定义变量时没有指定初值,则变量被默认初始化,此时变量被赋予了“默认值”。默认值到底是什么由变量类型来决定,同时定义变量的位置也会对此有影响。如果时内置类型的变量未被显式初始化,,它的值由定义的位置来决定(定义于任何函数体之外的变量被初始化为0)。每个类各自决定其初始化对象的方式。而且,是否允许不经初始化就定义对象也由类自己决定。如果类允许这种行为,它将决定对象的初始值到底是什么。
2.2.2 变量声明和定义的关系
为了支持分离式编译,C++语言将声明和定义区分开来。声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。而定义负责创建与名字相关联的实体。变量能且只能被定义一次,但是可以被多次声明。
2.2.3 标识符
C++的标识符由字母、数字、下划线组成,其中必须以字母或者下划线开头,长度没有限制,但是对大小字母敏感。
变量命名规范
- 标识符要能体现实际含义
- 变量名一般用小写字母
- 用户自定义的类名一般以大写字母开头
- 如果标识符由多个单词组织,则单词间应有明显区分,如 student_loan,或studentsLoan,不要使用studentloan。
2.2.4 名字的作用域