变化常数
请向我解释为什么我不能使用 next 来更改常量?
const int i = 10;
int * p = reinterpret_cast<int *>(&i);
Please explain to me why I can not change constant by using next?
const int i = 10;
int * p = reinterpret_cast<int *>(&i);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该使用 const_cast 来摆脱 constness,const_cast 专门用于这种情况。
You should use
const_cast
to cast away constness,const_cast
is specifically for this case.const 意味着常量,因为你无法改变它。
您可以执行
int nonconst_i = const_cast(i);
然后使用 nonconst_iconst means constant, as in you can't change it.
You could do a
int nonconst_i = const_cast<int>(i);
then use nonconst_i