2013-10-22 76 views
0

我檢查都是由編譯器:爲什麼輸出不一樣?

的這個輸出是10

int count = 0; 
    for(int i=0; i < 10; ++i){ 
      count=++count; 
    } 
    cout << count; 

我不知道爲什麼這樣的輸出(++計數變成計數++)是0

int count = 0; 
    for(int i=0; i < 10; ++i){ 
      count=count++; 
    } 
    cout << count; 
+6

未定義行爲。 – 0x499602D2

回答

4

隨着

 count=++count; 

 count=count++; 

這兩個程序都會遇到未定義的行爲,因爲您在修改count時沒有插入順序點。請注意,=運算符不會引入序列點。

強制性閱讀UB ;-)

Undefined Behavior and Sequence Points in C++

相關問題