这两个条件之间存在差异:
if (a==5)
和if (5==a)
?
答案 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'指向一个覆盖==的对象,那么理论上可能会得到不同的结果。