面试题答案
一键面试在C++中,当函数参数被声明为const
时,在常量表达式场景下主要有以下作用:
- 保证参数在函数内不被修改:可以避免函数意外修改传入的参数值,增强程序的健壮性和可维护性。
- 允许使用常量表达式作为参数:使得在编译期常量表达式(如
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
函数通常要求调用的函数具有一定的常量性。