推 鄉民B:我的Visual C++光碟哪裏去了?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.228.219
※ 引述《oohay (五黑)》之銘言:
: ※ 引述《fishforpt (游來游去的)》之銘言:
: Java:
: : System.out.println(z++ + z);
: C:
: : printf("%d ", z++ + z);
: : 同樣的寫法為什麼
: : java會出來 0 0 -1 0
: ^^
: : c卻跑出來 0 0 -2 0
: ^^
: 不是operator precedence不一樣.
: 而是對加號來說,哪邊運算元先取的差異.
: C並不定義加號的哪個運算元先取值,但Java明定由左邊運算元先取值.
http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html
再查一下Java spec,目錄15.7 Evaluation Order的前子目二似乎說明了一切:
15.7.2 Evaluate Operands befor Operation
--
→ 鄉民A:灌C可以搞阿嬌啊?