在C ++中检查条件时的等式运算符

时间:2012-05-04 18:07:15

标签: visual-c++

这两个条件之间存在差异:

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

3 个答案:

答案 0 :(得分:1)

不,没有任何区别。

人们过去常常使用5==a来代替a==5,因此可以在 C / C ++ 上捕获a=5错误,其中该表达式完全有效且始终有效评估为true。这样,如果程序员(错误地)写入表达式5=a,那么它将得到编译器错误。

答案 1 :(得分:1)

两者通常是相同的。

有些人建议先将常量放在{if (5==a)),因为这样,如果你输入错误并遗漏了=之一得到:if (5=a),编译器会给出一条错误消息,而if (a=5)将编译并执行,但可能不会执行您想要的操作。

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

答案 2 :(得分:1)

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