#include <iostream>
using namespace std;
int main()
{
const int kiNum = 100;
int* ptr = const_cast<int*>(&kiNum);
*ptr = 200;
cout<<"kiNum: "<<kiNum; // The value still prints 100 on the console??
return 0;
}
output:
kiNum = 100
在上面的代码片段中,我试图在const_cast之后更改const整数的值,然后更改地址处的值,但控制台仍然打印旧值(我正在使用visual studio 2012)
答案 0 :(得分:5)
写入定义为const的东西是未定义的(假设你当然抛弃了const)。
http://en.cppreference.com/w/cpp/language/const_cast
这是一个非常准确的网站。如果你有语言功能的问题,那么总是值得在那里查找恕我直言。