if (0 == a) 和 if (a == 0)
a是变量,0是字面量
写成 0 == a 是想判断a与0是否相等,即判断 a == 0 这个表达式是否为真的另一种写法
因为有些初学者在判断是否相等时容易写成 a = 0 这样的式子(但他其实是想表达是 a == 0)
但是由于判断写成了赋值,这样写的话编译器不会报错,因为 等号是右结合的,字面量0是可以赋值给变量a的,程序出错了不容易查出来。
如果写成 0 = a,这样的表达式,因为变量无法赋值给字面量,所以如果想判断是否相等(即使写成了赋值),在编译的时候就会报错。
这样更容易找出错误。
if(0 == a)和 if(a == 0)都没有区别,只是习惯问题,只是写成 0 == a在判断是否相等时更安全。