2014-11-14 32 views
0

爲什麼這個表達式是: int value = 0 if(++value == ++value)是真的嗎?遞增比較截斷

是不是應該等於if(1 == 2)?什麼等於?

回答

2

在c中,表達式++value == ++value的值是undefined。從技術上講,這是由於==不是測序點。

非正式地,這意味着您不知道++==評估將發生的順序。

-1

因爲++==具有更高的運算符前導。 這意味着兩個++操作將在==之前執行。

有關樣品,請參閱C Operator Predecense

+0

-1運算符優先級無關緊要。見Bathshebas的回答。 – user694733