簡體   English   中英

如果(x - y){}與if(x!= y){}相同,這些陳述是否相同

[英]Are these statements the same if (x - y) {} vs. if (x !=y) {}

我已經編程了一段時間,在我看來,以下兩個if語句會產生相同的結果,但我總是質疑它,有人可以幫我解決這個問題嗎?

int x, y;
if (x - y) {
  //some code
}

VS

int x, y;
if (x != y) (
  // some code
}

謝謝...

它取決於xy的類型。

假設xy都是int ,則兩個語句不等效,因為如果結果在int無法表示,則x - y將調用未定義的行為。

假設xy都是unsigned int ,則這兩個語句是等價的( unsigned int不會溢出)。

如果(xy)可能導致溢出,則不會。 如果發生溢出,則行為未定義。 在某些系統上它可能會換行,在其他系統上它可能會將結果設置為0(這會給你誤報)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM