学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 17 12
发新话题
打印

有点疑问,请教大家。小女子谢谢

回复 4# 的帖子

在vc下编译,加了volatile,可结果a还是为0,而不是3

TOP

哎````完全不懂```
女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
www.yzfy.org    yzfy.5d6d.com

TOP

我来说一点点

前一个:一开始你就用const初始化a=0了,相当于#difine a 0   只不过在内存中有了位置;只要初始化了,就不会再变了;
后一个:你也初始化a了,int a=3;只不过是普通的变量,而你把指针变量p用const初始化了,int *p=(int *)&a;此时p是不会再变了;
总之:只要用const初始化了,无论你怎么操作,是不会再变了;

TOP

引用:
以下是引用 墨泣 在 2008-5-5 17:48 的发言:

前一个:一开始你就用const初始化a=0了,相当于#difine a 0   只不过在内存中有了位置;只要初始化了,就不会再变了;
后一个:你也初始化a了,int a=3;只不过是普通的变量,而你把指针变量p用const初始化了,int *p=(int *)&a;此时p是 ...
const int a和#define a是大大地不同滴……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

额……我用的VS2008的编译器……
这种行为本来就是未定义的,所以编译器无论给出什么结果都是意料中的……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

回复 13# 的帖子

同意,完全正确!

TOP

编译器对立即数的实现,自己搜索相关立即数的问题
雁无留踪之意,水无取影之心

TOP

 17 12
发新话题