这段代码里——              int i=3;
    int j=i++;//i=4,j=3
    int k=++i;//i=5,k=5第一个问题:书上说++的意思为自加1,那么上面的代码i的值为3,自加1后得4,在将i的值赋给j、结果应该是j和i都为4,怎么i等于4,j=3呢?第二个问题:i++和++i有什么不同?谢谢前辈们了!

解决方案 »

  1.   

    int j=i++; //先做j=i运算,再为i自增1
    int k=++i; //先为i自增1,再做k=i(自增后的i)运算。
      

  2.   

    i++和++i运算之后i的值是一样的
    但是表达式i++和++i的的值就不一样了.
      

  3.   

    很简单的一个方法来记:++ 在变量i前,就是先给i加1,然后再把值赋给=前的那个变量。如果++在i后,就把i的值赋给=前的变量后,i的值再增加1 
      

  4.   


    如果理解不了x++,和++x 你可以将这两个当作两个static method
    int x++(int number){
      //先返回number,函数运行结束后 number=number+1
    }int ++x(int number){
      //计算number,number=number+1
      //返回number
    }
      

  5.   

    int j=i++;
    等价
    {
       int j=i;
       i=i+1;
    }int j=++1;
    等价
    {
       i=i+1;
       j=j+i;
    }
      

  6.   

    i++ :的意思是先使用i的值然后再加1.
    如你的程度里J=i++;的意思是先将i的值3赋给j(即j=3),后再加1.
    故J=i++;这个语句执行完后i的值才变为4.++i ::的意思是先使i的值加1,后再使用.
    即,J=i++;这个语句执行过程是:先将i的值加1(即i=4),再赋给j(即j=4).
      

  7.   

    i++就是先用了i,再对i增加1
    ++i就是i先加1,再拿去用
    这样够通俗了
      

  8.   

    i++
    i = i;
    i = i + 1;++i
    i = i + 1;
    i = i;
    这是这两个操作的执行过程, a   int i=3;
     b   int j=i++;//i=4,j=3
     c   int k=++i;//i=5,k=5 执行过程如下
     1  int i = 3; 2   int j = i;  // j=3
     3   i = i + 1;  // i=4 4   i = i + 1;  //i=5;
     5   int k = i;  //k=5;b 相当于 1,2两句的效果
    c 相当于 4,5两句的效果
      

  9.   

    楼主需要苦练基本功,看看java基本的书吧,c/c++里对这个操作符定义是一样的,也可以看看。