白豚 发表于 2016-5-29 22:35:18

自增问题

          i=5;
          y=(++i)+(++i);
          y的结果为什么是14而不是13?

DAY 发表于 2016-5-29 23:19:13

6加7不是13,,是什么。。

Looker 发表于 2016-5-29 23:37:27

//这与C语言底层的实现方式有关,如果你没有学过汇编,建议你按下面的方式来理解
/*y = (++i) + (++i); 两个(++i)是完全一样的对象,第一次++i将其本身更新为6,第二次++i将其本身更新为7,最终 y = 7 + 7 = 14. */
//如果你会java,可以用以下代码实现,你会发现结果是13
public class ex1 {
        public static void main(String args[]){
                int i = 5;
          int y=(++i) + (++i);
          System.out.println(y);       
        }
}
//这是Java和C底层处理的方式不同,如果想深究,请学习计算机组成原理

白豚 发表于 2016-5-31 22:16:09

哦,谢谢!
页: [1]
查看完整版本: 自增问题