2013-07-20 98 views
-2

爲什麼產量有差異?爲什麼產量有差異?

class Amie 
{ 
    public static void main(String...a) 
    { 
     int i=5; 
     i=++i/i++; 
     SOP(i); 
    } 
} 

OUTPUT = 1

用C

---

void main() 
{ 
    int i=5; 
    i=++i/i++; 
    printf(i); 
} 

OUTPUT = 2

+0

請參閱http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points。這解釋了C –

+4

中的這種表達方式的行爲,「未定義的行爲」和「== vs等於」是這裏最重複的兩個問題:_( – Maroun

+1

@ Vivek27這是第二個在2小時內:( – jozefg

回答

0

Java標準 reglament這樣的表達應該如何進行評估,並且只有1個可能的答案 - 1.

如果C的標準沒有保證可能的優化。您可以在其他編譯器生成的可執行文件中獲得2以及1。所以它是未定義的行爲在C

相關問題