一,const常量内存里的值变了,为何常量的值不变

1,const常量内存里的值变了,为何常量的值不变1,#include iostreamusing namespace stdvoid main(){cons

1,const常量内存里的值变了,为何常量的值不变
1,


#include <iostream>
using namespace std;
void main()
{
const int a=10;
 int &b=const_cast <int&>(a); //b为a的非常引用
 cout<<a<<"        "<<b<<endl;
 cout<<"&a "<<&a<<"      &b "<<&b<<endl;//ab地址相同
 b=20;
cout<<a<<"        "<<b<<endl;//ab值不同
cout<<"&a "<<&a<<"      &b "<<&b<<endl;//ab地址相同
}

b=20后 ab的地址还是相同,输出b是20,输出a却还是10,这是为什么 不变 const
[解决办法]
常量折叠- -
[解决办法]
可以参考我以前写的帖子http://blog.csdn.net/bluesky12312388/article/details/6007095
其实专业术语就叫“常量折叠”