电子领域吧 关注:55贴子:208
  • 2回复贴,共1

关于i++与++i的神级别的现象

只看楼主收藏回复

引贴:java吧
public class TestZiJia{
public static void main(String【】 args){
int i=0;
i=i++;//1)
System.out.println(i);
i=++i;// 2)
System.out.println(i);
}
}
结果是
0
1
开始 i=0;
我对 i=i++;;
我的看法
i++ 是 先取值 后计算
i=i++;
先把 i =0 的值赋值给i 同时 进行i 自加运算
都只 自加运算 优先级高于赋值运算,那么 先是 i开始等于1 然后运行 i=0 的赋值运算,
希望大家一起能够 讨论讨论这个问题


IP属地:广东1楼2015-08-04 11:39回复
    i=0;
    执行i=i++;
    之后,i的值还是为0
    这是一个赋值语句
    是把(i++)这个自增表达式的值赋值给i
    i++的值为0,然后i+1,i就变成1了,
    接下来把表达式的值给i,所以最后i的值还是0


    IP属地:四川2楼2015-08-21 14:23
    回复
      我们定义变量的时候,是在内存中的
      int i=0;
      也就是在内存中有一个i的值是0
      然而程序在计算的时候,是从内存中把值取出来,在cpu里面计算的
      也就是i++的时候,是cpu从内存中得到了一个值0把他加一,然后在返给内存中的i
      然而在这个时候,cpu中还有一个值,表达式的返回值,返回值就是0
      之后又把这个返回值给了i
      所以i最后的值为0
      可以这么理解,i的确自增了的
      但是自增的那个i不是赋值后的那个i,而是之前的那个i


      3楼2015-08-21 14:36
      回复