读书人

变量内存储器中的数据和变量地址里面的

发布时间: 2013-02-24 17:58:56 作者: rapoo

变量内存中的数据和变量地址里面的数据不一致!非常奇怪

                            
[解决办法]
因为 *pb=4; 这是未定义行为
当你修改i时,使用强制转化只表示语法正确,语法正确并不表示其行为就是可期待的
简单的说,你使用强制转化之前先得确保这么做是可行的
(对于你这个具体问题,编译优化是实现的根本原因,但不是C语言标准层次上的根本原因)
[解决办法]
google “常量折叠”
[解决办法]
编译器遇到i会将i直接编译成3,遇到*(&i)也编译成3。
*pb=4; pb指向的内存实际被修改

读书人网 >C++

热点推荐