C++ const关键字用法有哪些?C++ const正确使用方法【详解】

admin 百科 12
const是C++中编译期强制的数据不可变性机制,用于防误改、提可读性、助优化;必须初始化,支持常量指针、const参数传递、const成员函数及mutable例外。

C++ const关键字用法有哪些?C++ const正确使用方法【详解】-第1张图片-佛山资讯网

const 是 C++ 中保障数据不可变性的核心机制,不是“只读标签”,而是编译期强制约束。用对了能防误改、提升可读性、辅助优化;用错了可能绕过检查、引发未定义行为,或让接口语义模糊。

定义常量变量必须初始化

所有 const 变量(局部、全局、成员)都必须在声明时初始化,否则编译失败。

  • 基本写法灵活:const int x = 42; 和 int const y = 100; 等价,类型与 const 顺序可互换
  • 整型 const 全局变量默认内部链接:只在当前文件可见;跨文件使用需加 extern const int MAX = 100;
  • C++11 起支持运行时常量:const int size = some_func(); 合法(前提是 some_func() 是 constexpr 或已知返回值)
  • 数组大小可用 const 整型:const int N = 8; int arr[N]; ✅(C++11 及以后)

const 指针的三种关键形式

记住口诀:const 在 * 左边 → 指向的内容不可改;在 * 右边 → 指针本身不可改

  • 指向常量的指针:const int* p 或 int const* p
    → *p 不能改(如 p[0] = 5; 错误),但 p 可重定向(p = &y; ✅)
  • 常量指针:int* const p = &x;
    → p 不能改(p = &y; 错误),但 *p 可改(*p = 99; ✅)
  • 指向常量的常量指针:const int* const p = &x;
    → *p 和 p 都不可改,二者完全冻结

函数参数中 const 的实用价值

主要目的是明确接口契约:告诉调用者“我不会动你的数据”,也提醒自己别写错逻辑。

标签: c++

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~