因为i = i++ 是后加一。可以这么想,i先备份原值,i把备份的值赋给左边的变量,同时对自身加一,由于左边的址和右边的地址相同,i备份的值又把其加一的值给替换掉了。

解决方案 »

  1.   

    没变,i=++i;的时候这个i就变了~因为i=i++和i=++i都是i=i+1的意思,至于怎么解释,不了解~
    因为它就这么规定的
      

  2.   

    真是幼儿园问题,哈哈,没变是正确的。
    i++整个表达式的值等于i的,所以把i++赋值给i,相当于把i复制给i。
      

  3.   

    这个是运算符的运算顺序问题,i++是先值后运算,所以像 redv(想不出来,就出去转转) 说的“i++整个表达式的值等于i的”即表达式i++的值为0,赋值运算符=是先运算右边的,也就是i++先运算,i值为1,然后再把整个表达式的值赋给i,i的值又变成了0;
      

  4.   

    你这里有问题,可能是你重新把i的值赋了一编,所以看起来有点问题。
    我想关于i++和++i的区别你肯定是清楚的吧!!!