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 ", = 这里读作 "赋值", 赋值操作符 ( 即 "=" ) // 左边只能是单个变量,不能是表达式, 注意和数学中的 等于符号区别, 这里的赋值操作符并没有交换性
qq_狼烟四起_0
TA贡献12条经验 获得超5个赞
“=”这个符号是赋值号,不是数学上的等号。赋值号的运算顺序是从右向左,z=a+b的读法是把a+b的值赋给z。
“==”这个符号是等号,它的运算顺序是从右向左,year%4==0的读法是year这个变量取余数结果是0,这个符号一般用于循环语句和选择语句的判定条件,没赋值号用的频繁。
慕用4063026
TA贡献195条经验 获得超115个赞
C11规定左值是变量;
z=a+b这里的z是变量,把a+b的值赋值给变量z
year%4==0意思是左值等于0的情况下。
0==year%4,这里右值不为0等式就是错的
- 5 回答
- 0 关注
- 2770 浏览
添加回答
举报
0/150
提交
取消