码迷,mamicode.com
首页 > 其他好文 > 详细

修改const变量

时间:2015-04-24 15:33:20      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:

看下面的一段代码

1     const int i=0;
2     int * j=(int*)(&i); // 运行正确,j确为i的地址,但 int *j=&i; 编译错误
3     *j=1;              //确实改变了i的值
4     printf("%d %d\n",i,*j);  //输出0 1

第三行代码执行后,i的值确实已经改变

技术分享

然而printf的结果确实0 1,这是因为,在C++中对于const变量,在编译期就进行了替换,运行的时候printf中i已经被替换为0了,而*j是从内存中从新取值。

 

修改const变量

标签:

原文地址:http://www.cnblogs.com/gaoyanqing/p/4453263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!