int data;
data == 0与 0 == data 有什么区别吗?
为什么参考书上要写成 0== data.(有点不符合平常的思维惯性,所以问一下。)
因为当你写成
if(data=0)
C语言的编译器并不报错
但是这其实并不能实现你想要比较data和0这个目的,而是将0赋值给data
如果你写成0=data,编译器会认为你要给一个常量赋值,
就可以在编译阶段排查出程序漏洞,而不是要等到执行结果不正确才去猜哪里错了
-=-=-=-=
简单来说就是当你把比较误写成赋值时,一个会报错而另一个不会
我觉得没什么区别
https://blog.csdn.net/ll148305879/article/details/99712800
应该是一样的,只不过是编写的习惯问题,但是建议用0==data来表示,而不用data==0,避免少打一个=导致表达式恒成立,而出现奇妙的bug。
data == 0 与 0 == data 这两个表达式,在语法层面上是等价的,执行的结果也是相同的。
之所以很多书籍上面都使用后者的写法,是因为,可以避免少输入一个'=' 符号时,产生BUG。
因为这是个逻辑表达式,data == 0 与 data = 0 两者不是等价的,前者需要判断data的值,后者永远是false。
然而, data = 0 是不会报语法错误,但是, 0 = data 就会报语法错误,
从而,在代码编译的过程中,就可以得到提示。