1

这两种情况有区别吗:

if (a==5)if (5==a)

4

3 回答 3

1

不,根本没有区别。

人们过去常常写这个表达式5==a,而不是a==5这样可以捕获C/C++a=5上的错误,该表达式完全有效并且总是计算为. 这样,如果程序员(错误地)编写了表达式,那么它将得到编译器错误。true5=a

于 2012-05-04T18:09:11.180 回答
1

两者通常是相同的。

有些人建议将常量放在首位 ( if (5==a)),因为这样,如果您输入错误并遗漏了其中一个=to get: if (5=a),编译器将给出错误消息,而if (a=5)将编译并执行,但可能不会执行您想要的操作。

一些编译器会对后者发出警告(例如,最近的 gnu 迭代),但其他编译器不会(Visual C++ 属于后者)。

于 2012-05-04T18:12:14.037 回答
1

如果 'a' 指向一个覆盖 == 的对象,那么理论上你可能会得到不同的结果。

于 2012-05-04T18:12:47.437 回答