众嘲炮:如何记C语言的运算符优先度

2019-12-27 18:54发布

本帖最后由 TBG3 于 2017-4-6 11:46 编辑

好像本论坛大多数程序员不记优先度,用括号来表达。当然是一种解决办法。但是你读别人的程序时呢? 人家不加括号你怎么办?

记的方法,扎实的办法就是死记,效果最好,这里就不做详细介绍了。

就介绍一种简单的方法,就五条。

一是单目运算符,包括数组,结构,++ -- ~ !之类,最优先。 因为神是唯一的神,所以好好敬服他吧。

第二是运算次优先,+ - * / <<  >>,因为资本主义世界,你要算清楚,不然肯定亏。注意这里面移位最不优先,因为人都不乐意地位变化。

第三是关系优先于逻辑,所以 > < == != 优先于与或非,与或非里面,个数多的,优先单个的,也就是说 & | 优先于 && ||

第四就是 赋值最不优先,因为等你都做出来之后,才会赋予你报酬。注意,因为 ? :里面有关系,所以在赋值里面最优先。

第五条是 单目里面的优先度,和2,3,4里面的优先度是一样一样的,赋值里面的优先度也跟2,3是一样一样的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
yanyanyan168
1楼-- · 2020-01-09 10:49
从头看到尾,还是加()
su33691
2楼-- · 2020-01-09 14:43
在单独一条语句和for语句中会用到 i++;
在查表语句中会用到 table[i++]和  table[--i]。
chunjiu
3楼-- · 2020-01-09 14:56
我解决不同的问题时,经常性使用不同的编程语言,若靠死记硬背早就脑袋炸裂了 …… 解决问题的要点在于方式方法,编程语法都是毛毛雨,临时翻一下手册就行了,甚至按一下 F1 就啥都解决了。想知道我用哪些编程语言吗?各种内核的汇编、甚至直接使用6502的机器代码(当然现在早忘光了)、c、c++、c#、vba、javascirpt、squirrel。用的比较多的是c++,解决大问题的时候,它是最便捷的。解决小问题,什么顺手用什么。别以为 basic 语言很弱,我在比小霸王学习机还老的学习机上写过 6502 的反汇编,录程序靠磁带。在 286 上用 x86 的宏汇编写出 68000 的反汇编工具,老同志们还记得那个行编辑器吗?还在 win95 上用 Borland c++ 3.0 写出可以聘美街机的空战游戏,因依赖太多的硬件操作,结果只能在本机运行,别人拷回家都是黑屏 …… 所以,我觉得不管什么工具能用到纯熟就是最好的。通往一个目标的路可能有千百条,但没必要每条路都要走一遍,走最熟悉最省力的路既方便自己,也方便跟随你的其他人。

一周热门 更多>