首页 新闻 会员 周边

关于const_cast的奇怪现象

0
[已解决问题] 解决于 2015-05-13 17:00

如题,直接上图(不复杂,就不解释了),求高手解释这个奇怪的现象

c++
Reasno的主页 Reasno | 初学一级 | 园豆:190
提问于:2015-05-11 17:21
< >
分享
最佳答案
1

const对象是不允许修改的,而const_cast的存在是为了有些特殊情况需要表面去除const属性,比如函数传参,把const对象传进非const属性参数里,表面修改属性实则不改变其内容。而你这里表面上是修改了,*x=3,这种修改const对象属于c++标准里未定义行为,针对这样的,是由编译器来自行处理的。你可以看到他们地址都相同,但却值不一样,这是编译器的处理效果。我们需要做的是,避免编程里出现这种未定义行为。

奖励园豆:5
jiu~ | 菜鸟二级 |园豆:444 | 2015-05-12 13:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册