看看这个节目:
int main(){
const int a_const=10;
int * const a=const_cast<int * const>(&a_const);
*a=5;
}
因此a_const
的地址和指针a
具有相同的值。
但是,更改a
指向的值不会a_const
。
答案 0 :(得分:5)
您的程序的行为是 undefined 。 出现可能是未定义行为的表现。
您不能尝试使用非const
指针(或引用)作为结果来更改声明为const
的变量的值。 const_cast
。
(如果在这种情况下似乎有效,请尝试使用只读字符串文字的等效字符 - 这会导致很多平台崩溃。)