ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

const int count = 3;

int *p = (int*)&count;

*p = 5;

cout << count << “ ” << *p << endl;

程序并不会报出编译错误,而且会打印出3 5,原因是count在预编译期间就会被替换成3,至于为什么可以修改常量的值,那是因为const *被强制转换成为了int *。

posted on 2013-04-20 21:34  ldjhust  阅读(107)  评论(0编辑  收藏  举报