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