C++面试题更新 2026-08-03

在 C++ 中,关键字 const 有哪些主要用途?请结合你对 const 语义的理解,说明它在不同场景下的作用。

考察说明

考察对 C++ 中 const 关键字的综合理解,包括其定义、主要用途和语义细节。

回答思路

  1. 【回答框架 1】const 是 C++ 中用于定义常量的关键字,核心作用是限定变量的值不可被修改,从而提供编译期的约束保护。它可以修饰变量、指针、函数参数、函数返回值以及成员函数等。
  2. 【回答框架 2】修饰变量时,const 变量必须在定义时初始化,之后任何修改行为都会导致编译错误。它常用于定义不可变的配置值,并有助于编译器进行优化。
  3. 【回答框架 3】修饰指针时,需要区分 const 修饰的是指针本身还是指向的对象。例如 const int* p 表示指向常量的指针,指向的值不可改,但指针本身可改;而 int* const p 表示指针常量,指针本身不可改,但指向的值可改;const int* const p 则两者都不可改。
  4. 【回答框架 4】修饰函数参数时,const 用于表明函数不会修改该参数,这有助于提高代码的清晰度和安全性,并允许传入 const 对象或临时对象。修饰函数返回值时,const 常用于返回不可修改的对象或引用,避免调用方意外修改内部状态。
  5. 【回答框架 5】修饰成员函数时,const 表明该函数不会修改对象的状态,可以在 const 对象上调用。此外,const 与引用结合可以避免不必要的拷贝,同时保持只读性。
  6. 【关键点 1】const 的核心作用是定义不可修改的对象,提供编译期保护
  7. 【关键点 2】const 与指针组合时有多种语义,需区分 const 修饰的层次
  8. 【关键点 3】const 成员函数保证不会修改对象状态,可被 const 对象调用
  9. 【易错点 1】使用 const_cast 去除 const 属性并修改原本为 const 的对象,可能导致未定义行为
  10. 【易错点 2】const 关键字不保证对象在运行期不可变,只是限制通过该名称的修改方式