i = ++i

20170405發表於2020-08-20

  i = 2;

  i = i++ + ++i;

  結果輸出6,從左到右算,i++之後i為3,後邊++i之後,i為4

  但i++取的是舊值2,所以2+4= 6

  i = ++i + i++;

  結果為7,這就很容易困惑,其實只要記得++i的時候,i取得是最新的值,所以++i之後,i為3,後邊i++之後i為4,但取舊值3,前邊的++i取新值4,所以結果3+4 = 7

  這麼說你可能不信,接著  

  i = ++i + ++i;

  結果為8,兩個都是++i,都取新值,所以4+4 = 8

  i = ++i + ++i + ++i;

  如果按照上邊的思路,結果為15,可惜不是,首先這裡兩個+運算子,一個+運算子當作一個小整體,所以前邊兩個++i相加結果依舊為8,後邊++i之後i為5,呼叫第二個+運算子,8+5 = 13

  i = i++ + ++i + ++i;呢

  相信你已經明白了,沒錯,是11,第一個+號,結果如上,為6,第二個+號運算子則為6+5 = 11


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69979119/viewspace-2713363/,如需轉載,請註明出處,否則將追究法律責任。

相關文章