编译器对const常量的处理
- 2010年09月25日 23:09
- 由飘流
先来看一段代码,这是今天师兄贴给的。
1 2 3 4 5 6 7 8 9 10 | #include <stdio .h> int main() { const int i = 10; int* pi = const_cast<int *>(&i); *pi = 100; printf("%d %d\n", i, *pi); return 0; } </int></stdio> |
代码运行的结果是什么呢?按道理讲,i是一个const类型的常量,pi指向了存储i的内存空间的地址,然后通过pi改变了内存中的这个值,那么,结果应该是“100 100”?
可以自己跑了这段代码之后发现,输出的结果是“10 100”,这是为什么呢?
猛击阅读全文
