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 并没有发生变化。
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 并没有发生变化。