左值和右值问题
不明白a==8;和8==a的区别?
[解决办法]
把常数写在前面是防止写判断“==”时写成了“=”,那么前者不报错,后者报错。所以这是一个写程序的好习惯。
[解决办法]
正确写法情况下是没有区别的。
但是a==8;和8==a,如果写错,比如写成,a=8,8=a,
a=8这成这样,编译不会报错,
8=a写成这样,编译期间会报错,所以习惯上,我们一般会写成8==a,防止不小心少写了一个=号,这样编译器也会报错,从实际感受来说,当写代码时,确实容易这样犯错。
[解决办法]
楼上要表达的应该是赋值语句“=”吧,左值必须是变量,如a = 8,是将8赋值给a,a必须能够储存8这个值,所以a必须是变量。而8 = a 是不行的。如果是关系表达式“==”的话,只是判断两者之间的关系,8 == a与 a == 8都是可以的。
[解决办法]
两者是等价的,只能说,这是一个良好编程习惯.
[解决办法]