C++基础(2) - 变量和常量
文章目录
- 变量
- 1、什么是变量
- 2、如何使用变量
- 3、变量的命名
- 3.1 标识符
- 3.2 命名方案
- 常量
- 1、C++如何确定常量的类型
- 2、符号常量
- 2.1 `const` 限定符
- 2.2 预处理器方式 —— `#define`
变量
1、什么是变量
程序必须记录3个基本属性:
- 信息将存储在哪里;
- 要存储什么值;
- 存储何种类型的信息;
变量就是内存中的一小块空间(信息存储的地方)。当我们为变量赋值的时候,就是将数据存入到这个空间中(要存储的值)。而数据类型则决定了这个空间会开辟多大(存储的什么类型)。
“变量”就是指这个空间中的数据是可变的,它与“常量”相对。
2、如何使用变量
-
声明变量:
数据类型 变量名;
int price;
-
初始化变量:
变量名 = 数据;
price = 5;
-
使用变量:
std::cout << price << endl; // 输出变量 price = 10; // 修改变量的值 ...
总结:
- 未声明的变量不能使用;
- 未初始化的变量不能直接使用;
- 相同作用域中不能有两个同名变量;
- 赋值时的数据的类型必须符合声明时的数据类型;
3、变量的命名
3.1 标识符
用于给变量、函数、类等命名。
- 命名规则:
- 由字母、数字、下划线(
_
)组成; - 不能以数字开头;
- 不能使用C++中的关键字;
- 区分大小写;
- 以两个下划线打头(
__
)或以下划线和大写字母打头(_A
)的名称,被保留给实现(编译器及其使用的资源)使用。以一个下划线打头(_
)的名称被保留给实现,用作全局标识符【全局名称指的是名称被声明的位置】; - C++对于名称的长度没有限制,但是所起名称必须有意义,而且有些平台有长度限制;
- 由字母、数字、下划线(
3.2 命名方案
就变量名而言,有以下选择:
- Mydata
- myData
- mydata
- my_data
- intMyData
- iMyData
- …
只要变量名合法,就可以根据个人判断而使用。但是要注意保持个人命名风格的一致性和精确性!
常量
字面值,如 1024
、'a'
、"hello"
等,都是常量!它与变量相对,是不能修改的值。
此外,使用符号常量来代替字面值是更常用的方法!
1、C++如何确定常量的类型
C++将整型常量存储为 int
类型,浮点常量存储为 double
类型。如果想存储为其他类型,则需要通过后缀来显示指定。
后缀是放在数字常量后面的的字母,用于表示类型:
后缀符号 | 表示类型 |
---|---|
u /U | unsigned int |
l /L | long / long double |
ul (采用任一种顺序,大小写均可) | unsigned long |
ll /LL | long long |
ull (采用任一种顺序,大小写均可) | unsigned long long |
f /F | float |
2、符号常量
符号常量就是使用符号名称来代替常量表示的内容。这样,如果多个地方的同一个常量需要修改,我们只需要修改对应的符号名称即可。这个符号名称的命名规则跟变量的命名规则相同。
2.1 const
限定符
const int MONTH = 12;
常量(如MONTH)被初始化后,其值就被固定了,编译器将不允许再修改该常量的值。
语句中的 const
叫做限定符,因为它限定了声明的含义。上面的语句试图给一个 int
型只读变量(常量)MONTH赋值。
创建常量的通用格式如下:
const type name = value; // type为数据类型,name为常量名,value为数据值
注意:应该在声明中就对const进行初始化!如果在声明常量时没有提供值,则该常量的值将是不确定的,且无法修改。
2.2 预处理器方式 —— #define
除了使用 const
进行常量指定,还可以根据 C 语言的设定,使用 #define
来指定符号常量。
#define INT_MAX 32767
其中 #define
和 #include
一样,是预处理器编译指令。在预处理阶段,它会告诉预处理器,查找程序中所有的 INT_MAX
,并将其转换为 32767
。直到完成所有替换之后,才会被编译。