• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

if(a == 0) 和 if(0 == a)的表达

Gwvfbukn 2018-10-12 浏览量:1872

有什么区别吗?


看别人的代码,不明白为什么这么写,看着很别扭。。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 没有区别,后面的是防止将“ == "写成 ”=“,算是一种防错的处理技巧 。

    若误将" == " 写成 ” = “ ,前者的写法,编译器是不报错的,而后者编译时报错。

    这种处理方式对于初学者还是很有用的,避免了不必要的错误。

    • 发布于 2018-10-12
    • 举报
    • 评论 0
    • 5
    • 0

其他答案 数量:25
  • 写成0==a是为了想判断a与0是否相等即判断a==0这个表达式是否正确的另一种写法
    因为有些初学者在判断是否相等时容易写成 a = 0这样的式子但他其实是想表达是 a == 0但是由判断写成了赋值这样写的话编译器不会报错因为 等号是右结合的字面量0是可以赋值给变量a的程序出错了不容易查出来
    如果写成0=a这样的表达式因为变量无法赋值给字面量所以如果想判断是否相等但是却写成了赋值在编译的时候就会报错.这样更容易找出错误.
    if(0==a)和 if(a == 0)都没有区别只是习惯问题只是 写成 0 == a在判断是否相等时更安全.
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 5
    • 0

  • 二者作用完全一样,而if(0==a)类的写法可以防止写代码时少写=,不过对于0==a或在1==a,其实直接用if(a)就好啦,更需要注意的是

    非0值的判断,比如if(a==8)如果误写为if(a=8)则变成永真啦,而写成if(0==8)则在编译期就可以检测出if(8=a)的语法错误。

    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 2
    • 0

  • 漏掉一个等号时,a==0是警告,0==a会报错,其他的没区别。
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 1
    • 0

  • 没有区别,这样写只是为了防止少打个等号写成if(a=0)编译器不会报错,但是写成if(0=a)编译器就会报错,因为常数无法赋值。这只是一个为了减少自己编写代码出错的技巧,C专家编程里面有相关介绍,还有很多其他技巧你可以看一下
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 1
    • 0

  • 两者没有区别,后一种写法可以防止将“==”误写为“=”,因为不能给一个常数赋值,编译时会产生错误提示,而前者写法,编译器是无法发现这个错误的。
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 1
    • 0

  • 功能上没啥区别,实际运算时候有区别,== 号运算符会有个计算顺序,不过你这两个参数都是常数,也一样

    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 没啥区别,就是怕有些人把计较双等号丢掉变成了赋值,就是说== 少敲一个=号 变成a=0 和0=a,然后a=0是赋值,0=a会报错
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • ==是判断符号,左边右边并没有什么要求0写前面写后面都一样,个人习惯
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • ==是用来判断的,正反没有区别
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般再公司写项目的时候要求必须用后面那种写法,为了安全而言,后面的写法如果少写了一个等号的话就会报错,这样的写法可以有效地防止错误,其实实现的效果是完全一样的
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 一样的,一般用左边一个,看起来习惯一些
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 这两种都是可以的,语法上都是对的,没有区别的
    • 发布于2018-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 都是一样的啊,0==a是防止 写错,写成0=1
    • 发布于2018-10-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有区别,就是个人的逻辑顺序的问题,或者是个人习惯。
    • 发布于2018-10-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有区别,就是为了防止写错,其它的软件不知道,keil里会有无报错。
    • 发布于2018-10-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有区别,后面的是防止将“ == "写成 ”=“,算是一种防错的处理技巧  :若误将" == " 写成 ” = “ ,前者的写法,编译器是不报错的;而后者编译时报错
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 就是防止错误书写的一种办法。
    • 发布于2018-10-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 这两种写法本质上没有区别,只是个人习惯,至于防错那个,现在一般的IDE都会有相应的提示功能,一般不会出现这种错误的
    • 发布于2018-10-21
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

if(a == 0) 和 if(0 == a)的表达