#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。 我不知道为什么它不起作用或我在这里错了?
答案 0 :(得分:1)
&#34;尝试在生命周期内修改const对象会导致未定义的行为。&#34;这可能是程序崩溃(尝试修改只读内存),意外结果或根本没有效果。在这种情况下,PIE
常量的值可能在编译时直接输出(而不是通过变量),因此您尝试更改值并不起作用。