为了账号安全,请及时绑定邮箱和手机立即绑定

运算与赋值的等号前后怎么写啊?

运算与赋值的等号前后怎么写啊?

C
大錘審問 2017-12-07 11:24:47
year%4==0  为什么不是  0==year%4z=a+b对吧  a+b=z是错的那为什么上面是那样写啊???
查看完整描述

5 回答

?
JackWho

TA贡献48条经验 获得超24个赞

呵呵,很经典的问题 

year % 4 == 0 /* 注释: year 对 4 取余( 求模 ) 的结果是否于 0 相等 */

// 下面的这种写法和上面的写法是等价的,但是更为推荐,因为将 == 误写做 = 是很多程序员 ( 甚至
// 是有较多编程经验的程序员 ) 易犯的错误,这种错误属于逻辑错误,比较隐蔽,不易发现 
    // 比如当你想判断  age 是否等于 20 岁的时候,使用我们的最佳实践法,写作
    if (20 = year){ // 这里不小心将 == 写成了 = ,就会因为 赋值操作符左边只能为变量的语法
    // 检查而导致错误暴露出来
        // do something
    }

0 == year % 4 // 这种写法被称为 == 的最佳实践


// 而  z = a + b; 是 "将 a + b 的值  赋值给 z ", = 这里读作 "赋值", 赋值操作符 ( 即 "=" ) 
// 左边只能是单个变量,不能是表达式, 注意和数学中的 等于符号区别, 这里的赋值操作符并没有交换性


查看完整回答
3 反对 回复 2017-12-07
?
慕数据8240494

TA贡献1条经验 获得超1个赞

前者是算数符号  判断两边是否相等

后者是赋值符号  规定把右边的值赋值给左边

查看完整回答
1 反对 回复 2017-12-07
?
qq_狼烟四起_0

TA贡献12条经验 获得超5个赞

“=”这个符号是赋值号,不是数学上的等号。赋值号的运算顺序是从右向左,z=a+b的读法是把a+b的值赋给z。

“==”这个符号是等号,它的运算顺序是从右向左,year%4==0的读法是year这个变量取余数结果是0,这个符号一般用于循环语句和选择语句的判定条件,没赋值号用的频繁。

查看完整回答
1 反对 回复 2017-12-07
?
慕用4063026

TA贡献195条经验 获得超115个赞

C11规定左值是变量;

z=a+b这里的z是变量,把a+b的值赋值给变量z

year%4==0意思是左值等于0的情况下。

0==year%4,这里右值不为0等式就是错的

查看完整回答
1 反对 回复 2017-12-07
?
__innocence

TA贡献313条经验 获得超208个赞

等号是赋值,两个等号是判断是否相等

查看完整回答
1 反对 回复 2017-12-07
  • 5 回答
  • 0 关注
  • 2770 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信