读书人

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

发布时间: 2013-04-20 19:43:01 作者: rapoo

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
其实专业术语就叫“常量折叠”

读书人网 >C++

热点推荐