首先看下面一段代码:
#include <iostream>
using namespace std;
int
main()
{
const int i = 10;
int *pi = const_cast<int *>(&i);
++*pi;
cout << " i = " << i << ", @" << &i << endl;
cout << "*pi = " << *pi << ", @" << pi << endl;
}
运行结果是:
i = 10, @0x28ff44
*pi = 11, @0x28ff44
我想问的是,变量 i 的值到底有没有被改变?问什么同一个地址输出的值不一样?