C语言解惑之逻辑操作符和增量操作符

发布于 2015-09-22

以上这些只要考虑到操作符的优化级和关联规则,还有以前提到过的贪心法(大嘴法)就可以得出结果了。同贪心法的知识,请参考:C语言陷阱与缺陷之词法分析中的“贪心法”。 我们重点研究一下z = x / ++x这个语句。 (z = (x / (++ x))) 如果你还像以前那样按照从内到外的顺序对这个表达式进行求值,即先对x进行递增,然后作为除数、用x作被除数去进行除法计算。问题是:作为被除数的x到底是几?是3还是4?换个问法,被除数到底是递增前的x值,还是递增后的x值?请注意,C语言并没有对这种“副作用”作出明确的规定,而是由C编译器的编写者决定的。这个例子的教训是:如果你无法断定会不会产生副作用,那么就尽量不要写这样的表达式。


程序趣闻

发布于 2015-09-21

以下内容都是作者在阅读《深入理解计算机系统》时所遇到的有意思 …


计算机系统

发布于 2015-09-21

本文对于计算机系统进行介绍,内容参考自《新编16/32位微型计算机 …