打印

常量指针转换问题

[复制链接]
947|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hsbjb|  楼主 | 2012-8-9 18:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
火箭球迷| | 2012-8-9 20:45 | 只看该作者
(int)*p=0应该编译不能通过,p所指向的内容是不能改变的。

使用特权

评论回复
板凳
sinadz| | 2012-8-9 20:54 | 只看该作者
这是常量折叠的问题,编译的时候const会被数值替代,如const int i = 8;i会被8替代,相当于#define i 8
运行期间,i地址的内容确实被改变了,但是i的值已经在编译期间被8所替代

使用特权

评论回复
地板
txcy| | 2012-8-9 21:05 | 只看该作者
(int)*p=0;  
前面定义了const,常量值是不能改变的,编译会报错试图给常量赋值……

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

2354

帖子

0

粉丝