繁体   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