C++ Const
const 关键字其实相当于你给一个承诺给编辑器,承诺你将不会改变这个变量的值。但实际上这只是一个承诺,在一些情况下,这个承诺也可以被打破。
用法很简单,仅仅是在定义的前面加上 const 关键字,然后该变量则不再允许被改变。
int main()
{
const int a = 5;
a = 2;
}
Error (active) E0137 expression must be a modifiable lvalue
Error C3892 'a': you cannot assign to a variable that is const
所以我们通常把 const 标记的变量称作为常量。
如前述所说,这个承诺是可以被打破的:
int main()
{
const int MAX_AGE = 90;
int* a = new int;
std::cout << a << std::endl;
*a = 2;
std::cout << a << std::endl;
std::cout << *a << std::endl;
a = (int*)&MAX_AGE;
std::cout << a << std::endl;
std::cout << *a << std::endl;