我正在测试下面的代码,并期望编译器抛出运行时异常,因为我正在更改v的值,它指的是与intV相同的地址,这是一个常量。但是,我得到了以下输出
4
5
4
0x7ffea6823a44
0x7ffea6823a44
有人可以解释为什么intV的地址与v相同但是intV的值与* v的值不同?
int main(char ** args, int argc)
{
const int intV = 4;
int *v = const_cast<int*>(&intV);
*v = 5;
std::cout << intV << std::endl;
std::cout << *v << std::endl;
std::cout << intV << std::endl;
std::cout << v << std::endl;
std::cout << &intV << std::endl;
}
谢谢, RG