为何地址一样,值却不一样?
2012-05-02 12:28 Rollen Holt 阅读(631) 评论(1) 编辑 收藏 举报先看代码:
#include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { const int a = 1; int *p = const_cast<int*>(&a); *p = 2; cout << "value a="<< a << endl; cout << "value *p=" <<*p << endl; cout << "address a=" <<&a << endl; cout << "address p=" <<p << endl; return 0; }
输出结果:
value a=1
value *p=2
address a=0022FBC8
address p=0022FBC8
请按任意键继续. . .
采用volatile关键字,修改为:
#include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { const volatile int a = 1; int *p = const_cast<int*>(&a); *p = 2; cout << "value a="<< a << endl; cout << "value *p=" <<*p << endl; cout << "address a=" <<&a << endl; cout << "address p=" <<p << endl; return 0; }
结果为:
value a=2
value *p=2
address a=1
address p=0042FDB8
请按任意键继续. . .
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================
![](http://service.t.sina.com.cn/widget/qmd/1882500857/8c17d4b5/1.png)