c ++中的常量标识符修改

时间:2015-11-19 02:38:56

标签: c++

#include<iostream>
using namespace std;

int main()
{
    const float PIE=3.1415926535; 

    float *pie=const_cast<float*>(&PIE);

    *pie=7.9;   
    cout<<"float:"<<PIE<<endl;
    return 0;
}

所以我想要做的是通过将其地址转换为非常量指针来修改const PIE,然后通过此指针修改PIE。 我不知道为什么它不起作用或我在这里错了?

1 个答案:

答案 0 :(得分:1)

&#34;尝试在生命周期内修改const对象会导致未定义的行为。&#34;这可能是程序崩溃(尝试修改只读内存),意外结果或根本没有效果。在这种情况下,PIE常量的值可能在编译时直接输出(而不是通过变量),因此您尝试更改值并不起作用。