猪八哥 发表于 2016-1-26 19:12:26

谭浩强C语言中的一个小问题

第四章 闰年 中的一个逻辑语句:( year%4==0 && year%100!=0 ) || year%400==0
我想了一天没明白 这里为什么要加括号??
还有同一章的一个条件表达式 a>b?(max=a): (max=b);// 赋值表达式2侧有括号,分析为什么?
这里 我也不明白。。我估计是为了让人看的更清楚不加括号也是一样的。
谢谢

小甲鱼 发表于 2016-1-27 11:52:55

先给结论:不加括号是一样的。

为什么要加括号:因为并不是所有的开发者在开发时均能保持脑袋清醒并 100% 确保正确地记住了运算符的优先级(打瞌睡的时候最容易出错,不要问我为啥……),所以加个小括号强调先后顺序是一个好习惯(反正又不会增加计算量)。

这就像某些人出去嫖娼,明知道带一个套套跟戴两是一个效果,但他还是戴了两,因为他认为常在河边走哪能不湿鞋……{:10_319:}

猪八哥 发表于 2016-1-26 19:18:37

另外,新手从谭浩强C语言开始看起。希望有同样的新手加个QQ啥的,我们一起交流。。看书的过程中真的遇见好多问题,没有解决, 不影响看书进程的 我都记下来,等看完 一起求解。。

康小泡 发表于 2016-1-26 19:34:53

和运算顺序有关的。在后面附录里面你看一下运算顺序就知道了。还有一个就是为了方便看

猪八哥 发表于 2016-1-26 19:37:33

康小泡 发表于 2016-1-26 19:34
和运算顺序有关的。在后面附录里面你看一下运算顺序就知道了。还有一个就是为了方便看

我看了啊 看了半天 没明白。。我在想 也是与运算符的 优先级 有关。。。但是脑袋已经进入死胡同了,就差凌门一脚 别人的提醒了

猪八哥 发表于 2016-1-26 22:00:51

自己顶一下

黑龍 发表于 2016-1-27 10:06:34

运算顺序 其实和数学里是一样的。。。(1+2)*3=9

猪八哥 发表于 2016-1-27 19:23:23

小甲鱼 发表于 2016-1-27 11:52
先给结论:不加括号是一样的。

为什么要加括号:因为并不是所有的开发者在开发时均能保持脑袋清醒并 100 ...

感谢,难怪我想了半天 想不明白

linmao 发表于 2016-1-28 21:37:20

支持楼主

徐颖科 发表于 2016-1-30 14:06:59

小甲鱼 发表于 2016-1-27 11:52
先给结论:不加括号是一样的。

为什么要加括号:因为并不是所有的开发者在开发时均能保持脑袋清醒并 100 ...

这例子举得~
页: [1]
查看完整版本: 谭浩强C语言中的一个小问题