C++ 中 const 和 constexpr 关键字解析:常量、函数和指针


在C++中,constconstexpr 都是用来定义常量的关键字,但它们在用法和语义上有一些不同。

const 关键字

const 关键字用于定义常量,并表示该值在程序运行时不可修改。

用法示例:

  1. 定义常量:
const int MAX_VALUE = 100;
  1. 定义常量指针:
const int* ptr = &MAX_VALUE;
  1. 在函数中保护参数不被修改:
void printValue(const int value) {
    // value 不可修改
    cout << value << endl;
}

constexpr 关键字

constexpr 关键字用于声明常量表达式,表示在编译时就可以计算出结果的表达式。

用法示例:

  1. 定义常量:
constexpr int SIZE = 10;
  1. 定义常量函数:
constexpr int square(int x) {
    return x * x;
}
  1. 在数组大小声明中使用:
int array[square(5)];

比较

  • const 关键字用于定义运行时常量,而 constexpr 用于定义编译时常量。
  • const 可用于任何变量,但 constexpr 只能用于常量表达式。
  • const 可以用于指针,但 constexpr 不适用于指针,除非指针指向的是编译时常量。

总的来说,constconstexpr 都是定义常量的关键字,但它们的应用场景和语义有所不同,具体使用取决于您的需求和情况。


原文链接:codingdict.net