這是一個初學者的問題。C++代碼顯示不同的,這是意想不到的,在不同的編譯器中輸出
以下是我與
int main() {
int x=5, y=5;
cout<<x--;
cout<<",";
cout<<--x;
cout<<",";
cout<<y--<<","<<--y;
return 0;
}
工作時在Turbo C++ 3.0下運行C++代碼的代碼顯示輸出:
5,3,4,4
當代碼編譯::在Windows塊(使用的MinGW與GCC/G ++)下面是顯示的輸出:
5,3,4,3
以前,我聽說有時不同的編譯器對某些問題的行爲不同,但我不明白爲什麼會顯示此結果。因爲從邏輯上講,因爲我認爲,輸出應該是:
5,3,5,3
能否請你告訴我,這樣的輸出的邏輯推理。
謝謝!
[任何人都可以解釋這些未定義的行爲(i = i ++ + ++ i,i = i ++等等)](http:// stackoverflow。com/questions/949433/could-anyone-explain-these-undefined-behaviors -i -i -i -i -i -i) – Casey
@Casey謝謝你指出我的問題。我沒有在搜索結果中找到它,但它確實解釋了很多。 –
Turbo C++ 3.0於1991年發佈,所以它不可能是C99編譯器。 – Spire