标题: java的++i和c的++i
pkar
LU小天使
Rank: 3Rank: 3



UID 30295
精华 5
积分 233
帖子 338
活跃指数 101
LU金币 2779 个
LU金条 0 个
阅读权限 40
注册 2005-3-16
 
发表于 2006-10-10 09:08  资料  个人空间  短消息  加为好友 
java的++i和c的++i

同样是
int i =3;
int j=(++i) + (++i);

在c中和java中结果竟然是不一样的
在c中,j= 10
而在java中j=9


同样
int i =3;
int j = (i++) + (i++);
的结果也不一样
在c中,j= 6
而在java中j=7

java和c的编译到底有什么不同呢

[ 本帖最后由 pkar 于 2006-10-10 09:11 编辑 ]





无为者帝
为而无以为者王
为而不贵者霸
顶部
pkar
LU小天使
Rank: 3Rank: 3



UID 30295
精华 5
积分 233
帖子 338
活跃指数 101
LU金币 2779 个
LU金条 0 个
阅读权限 40
注册 2005-3-16
 
发表于 2006-10-10 13:50  资料  个人空间  短消息  加为好友 
int j=(++i) + (++i);
在C里面(++i)应该用的都是i的存储地址,
使用inc指令将地址里的内容自动加了1
所以导致第二个++i把第一个给覆盖了
然后两个相加付给了j,导致j=10





无为者帝
为而无以为者王
为而不贵者霸
顶部
 



当前时区 GMT+8, 现在时间是 2008-12-2 18:17
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.052877 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver