计算机

常量表达式

常量表达式(const expression)指的是编译过程就能得到其值的表达式。

显然,字面量以及由字面量确定的表达式是常量表达式。

定义

可以使用 constexpr 定义一个变量的初始化条件为常量表达式。

与 const 关键字区别

C++11 constexpr和const的区别详解 - C 语言中文网

const 本质上具有二义性:对于编译期就能获得其值的量,const 定义的是真正的常量;对于编译期不能得到其值,需要运行才能得到的变量,const 只是在定义该变量后不能修改,本质上是只读变量而不是真正的常量。

因此,C++ 11 引入了新的关键字 constexpr 来标明真正的常量。例如:

constexpr size_t MAXN = 1000; // 也可以写为 const MAXN = 1000

int main()
{
    std::string s;
    cin >> s;
    const size_t length = s.length(); // 只读变量
    // constexpr size_t length = s.length(); // 错误,只读变量不是常量
}
BEYOND THE ARTICLE

读完了,有什么想法?

阅读已保存的问答示例,并循着引用回到原文。

查看公开问答示例
— 本文完 — 返回文章列表