日期:2014-05-20  浏览次数:20669 次

自加问题
int count=0;
for(int i=0;i<100;i++){
  count+=count++;
}
为什么count结果是0
而改成count+=++count;结果是-1又是为什么


------解决方案--------------------
改成count+=++count结果是-1,是因为溢出了,你在循环里加个println(count)就可以看到
至于count+=count++目前未知。。。
------解决方案--------------------
问题1:
count+=count++; 
因为 你第一次开始的时候count=0所以 count+=count 这个应该知道 如果这样写 肯定是0 为什么 count+=count++; 这样 也等于0 因为 你表达式后面count++这个 是针对 在赋值以前加的 不是 在整个整个表达式 完成了 进行++的 

问题二:
就和楼上所说的 是 溢出了 第32位 是fffffff1 所以是-1