const
内容简介
const 表示“只读”。它不会让变量神秘地变成常量池里的东西,核心作用是让编译器检查:这块数据不应该被当前代码修改。
用法
const 变量
const int max_count = 100;const 指针相关
int value = 10;
int other = 20;
const int *p1 = &value; // 不能通过 p1 修改 value
p1 = &other; // 可以换指向
int *const p2 = &value; // p2 不能换指向
*p2 = 30; // 可以修改 value
const int *const p3 = &value; // 指向和值都不能通过 p3 修改C++ const 引用参数
void print_name(const std::string& name)
{
std::cout << name << std::endl;
}最佳代码实践
- 不需要修改的数据都尽量加
const。 - 函数参数如果是大对象,C++ 中优先使用
const T&。 - 指针参数只读时写成
const T*。 - 常量命名要表达含义,例如
max_user_count,不要只写n。
错误用法
const int level = 10;
level = 5; // 错误:不能修改 const 变量const int value = 10;
int *p = (int*)&value;
*p = 20; // 错误:不要强行修改 const 对象注意事项
const变量必须初始化。- C++ 中
constexpr表示编译期常量表达式,语义比普通const更强,后续在 constexpr 学习。 const和宏不同:const有类型检查,宏只是预处理替换。
学习路径
- 上一节:CandCpp指针进阶
- 当前阶段:CandCPP基础
- 下一节:CandCpp数据变量进阶