const_cast用法,该如何解决

const_cast用法

int  a = 1;
const int *pInt = const_cast<int*>(&a);

为什么不报错?

这个用法很容易迷惑人,

第一const_cast  虽然有添加或者移除const的作用,

但是在提供地方例子中, 似乎是 移除const的作用。

接着,

const* 又指向了  普通的int指针所指向的内存
------解决思路----------------------
const_cast转换符是用来移除变量的const或volatile限定符。

const_case 本身 并不能修改 const 的值 。
 例如 :
  const int  nconst = 10 ;
int *motify = const_cast<int *>(&nconst); // motify 是指向 nconst 的指针.
*motify = 11; //修改motify值 ,应该修改了指针的指向,按理说nconst 的值也发生了改变,但是事实是 nconst 并没有发生变化。