掌握 C++ 变量、字面量与常量:核心概念与实战指南
C++ 变量、字面量与常量
本教程通过示例详解 C++ 变量、字面量、常量的核心概念、命名规范与使用技巧。
C++ 变量
变量是存储数据的命名存储区。每个变量需唯一标识符(名称)。例如:
int age = 14;
age 是 int 类型变量,存储整数 14。
int 仅存整数;若需小数/指数,用 double。数据类型详见后续教程。变量值可变,故名“变量”:
int age = 14; // age = 14
age = 17; // age = 17
变量命名规范
- 仅含字母、数字、下划线
_ - 不能以数字开头
- 推荐小写字母开头(如 name 优于 Name)
- 不能是关键字(如
int、class) - 可以下划线开头,但不推荐(易与内部符号冲突)
C++ 字面量
字面量是代码中直接表示的固定值。如 1、2.5、'c'。你无法给字面量赋值。
1. 整数字面量
无小数/指数部分的数值。三种进制:
- 十进制:
0、-9、22 - 八进制:以
0开头,如021、077 - 十六进制:以
0x开头,如0x7f、0x2a
2. 浮点字面量
含小数或指数部分:
-2.0
0.0000234
-0.22E-5 // E-5 = 10-5
E-5 = 10-53. 字符字面量
单引号括起单字符:'a'、'm'、'F'、'2'、'}'。
4. 转义序列
表示无法直接输入或有特殊含义的字符:
| 转义序列 | 含义 |
|---|---|
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表 |
\v | 垂直制表 |
\\ | 反斜杠 |
\' | 单引号 |
\" | 双引号 |
\? | 问号 |
\0 | 空字符 |
5. 字符串字面量
双引号括起的字符序列:
| 字面量 | 说明 |
|---|---|
"good" | 字符串常量 |
"" | 空字符串 |
" " | 6 个空格的字符串 |
"x" | 单字符字符串 |
"Earth is round\n" | 含换行的字符串 |
C++ 常量
使用 const 关键字声明不可修改的变量:
const int LIGHT_SPEED = 299792458;
LIGHT_SPEED = 2500; // 编译错误!常量不可修改。
const 修饰的变量初始化后不可更改,任何修改尝试均导致编译错误。
也可用 #define 预处理宏定义常量,详见 C++ 宏教程。
进阶:constexpr 与 const 区别(C++11+)
| 特性 | const | constexpr |
|---|---|---|
| 求值时机 | 运行时(也可编译时) | 保证编译时求值 |
| 用作数组长度 | C++11 起允许(VLA 非标准) | 标准保证可用作数组长度 |
| 函数参数 | 可用 | C++20 前不可作函数参数 |
| 指针/引用 | 可指向非常量 | 必须初始化为常量表达式 |
现代 C++ 推荐:能用 constexpr 就用 constexpr,仅当运行时才能确定值时用 const。
C语言
- C 语言关键字与标识符完全指南
- C 语言变量、常量与字面量完全指南
- C 语言存储类完全解析:auto、extern、static、register
- C++ 变量与数据类型全解析:int、double、char、string、bool 详细指南
- C 语言变量、数据类型与常量实战指南
- C 语言变量详解:类型、命名规则、定义声明与内存管理
- C 语言常量与字面量完全指南:类型、用法与最佳实践
- C++变量类型详解:内存布局、取值范围与操作集
- C++变量作用域全解析:局部变量与全局变量的区别与交互
- Python变量、常量与字面量完全指南
- Java 变量与字面量:全面指南
- 理解 Java 变量类型:综合指南