常量表达式
常量表达式(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
读完了,有什么想法?
阅读已保存的问答示例,并循着引用回到原文。
— 本文完 — 返回文章列表