指向const int的指针并通过指针修改其值

时间:2017-01-28 19:18:18

标签: c++ pointers casting const

当我尝试通过其地址修改const int的值时,我正在学习指针并感到困惑。我不确定它是否有任何实际意义。我只是想了解指针如何适用于const int。这是代码:

const int a = 10;
*((int*)&a) = 20;
cout << a << endl;
cout << *(&a) << endl;

它打印10和20.但我认为它应该打印20和20,因为在第二行,我铸造了&amp; a并修改了它的值。所以a的值应该改变,因为该地址的位模式发生了变化。

我也尝试了以下代码:

int a = 10;
*((int*)&a) = 20;
cout << a << endl;
cout << *(&a) << endl;

按照我的预期打印20和20。我只是不明白const在这种情况下是如何工作的。如果有人能提出任何建议,我真的很感激。

0 个答案:

没有答案