MST

星途 面试题库

面试题:C++ 中 const 在常量表达式里如何用于函数参数

请解释在 C++ 中,当函数参数被声明为 const 时,在常量表达式的场景下有什么作用,并举例说明。
36.5万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

在C++中,当函数参数被声明为const时,在常量表达式场景下主要有以下作用:

  1. 保证参数在函数内不被修改:可以避免函数意外修改传入的参数值,增强程序的健壮性和可维护性。
  2. 允许使用常量表达式作为参数:使得在编译期常量表达式(如constexpr函数调用等场景)中能够安全地使用该函数。

示例代码如下:

// 函数声明,参数为const
void printValue(const int num) {
    // 尝试修改num会导致编译错误,如 num = 10; 
    std::cout << "The value is: " << num << std::endl;
}

// constexpr函数,使用上述函数
constexpr void test() {
    printValue(5); 
}

在上述代码中,printValue函数的参数num声明为const,这保证了num在函数内不会被修改。同时,在constexpr函数test中,可以调用printValue函数并传入编译期常量5。如果printValue函数的参数不是const,在constexpr函数test中调用它可能会导致编译错误,因为constexpr函数通常要求调用的函数具有一定的常量性。