C++ const 完整语法整理
const 是 C++ 核心的类型限定符,核心作用是给数据 / 函数添加'只读'约束,编译阶段强制检查修改行为,既提升代码安全性、可读性,也帮助编译器做优化。以下按「使用场景」拆解 const 的语法、作用和核心规则,覆盖从基础到类成员的全场景。
一、核心定义
const(常量)本质是'只读契约':
- 编译期检查:禁止修改被
const修饰的内容,违规直接报编译错误; - 无运行期开销:仅在编译阶段生效,不额外占用内存(除非对
const变量取地址 / 声明为全局 / 静态); - 核心价值:避免意外篡改数据、明确函数'只读行为'、支持 const 对象调用。
二、分场景语法详解
场景 1:const 修饰普通变量(全局 / 局部)
语法(两种等价写法)
// 写法 1:const 在前(推荐,语义更清晰)
const 类型 变量名 = 初始值;
// 写法 2:const 在后(效果一致,顺序不影响)
类型 const 变量名 = 初始值;
核心作用
变量一旦初始化,终身不可修改;且 const 变量必须初始化(否则编译报错)。
示例
// 局部 const 变量(栈上)
const double PI = 3.14159;
// PI = 3.14; // 错误:只读变量不可赋值
int const num = 10; // 等价于 const int num
// 全局 const 变量(全局区,默认作用域为当前文件)
const int GLOBAL_NUM = 100;
// 跨文件访问全局 const:加 extern
extern const int GLOBAL_NUM2 = 200;
注意事项
- 局部
const变量:若用字面量初始化(如3.14),编译器可能'常量折叠'(直接替换值,不访问内存); - 全局
const变量:默认带static属性(仅当前文件可见),跨文件访问需加extern。

