【发布时间】:2017-12-30 15:33:22
【问题描述】:
我对常量有点困惑。它在 Programming Principles and Practice Using C++ 一书中说你不能给常量一个新的值。
constexpr int max = 17;
int val = 19;
max+2
但是这段代码让我很困惑。 max+2,这意味着最大值将有一个新值,19,那么真正的常数是多少?你怎么能把 2 加到一个常数上?
【问题讨论】:
-
max+2不会修改max。 -
max+2 是一个表达式,不会重新分配最大值。尝试重新分配最大值,即
max = max + 2- 编译器会抱怨。 -
3+2并不意味着3会有一个新值5。