使用指针c ++更改const变量

时间:2017-08-03 11:57:38

标签: c++ pointers const

看看这个节目:

int main(){
    const int a_const=10;
    int * const a=const_cast<int * const>(&a_const);
    *a=5;
}

因此a_const的地址和指针a具有相同的值。 但是,更改a指向的值不会a_const

1 个答案:

答案 0 :(得分:5)

您的程序的行为是 undefined 出现可能是未定义行为的表现。

您不能尝试使用非const指针(或引用)作为结果来更改声明为const的变量的值。 const_cast

(如果在这种情况下似乎有效,请尝试使用只读字符串文字的等效字符 - 这会导致很多平台崩溃。)