Come From 《C Primer Plus》
1 101页介绍,通过以下两条原则,可以避免在出现异常结果
a)如果一个变量出现在一个函数的多个参数(形参)中时,不要将曾量活减量运算符用在它们上面
b)当变量出现在一个表达式中时,不要将增量或减量运算符用在它们上面
为什么要避免这两点,原因见103页“副作用与顺序点”。副作用:指程序代码对数据对象或者文件的修改,简单理解就是左值被修改了;顺序点:一个顺序点是程序中执行的一点,在该点处,所有副作用都在进入下一步前被计算,在C语言中一个顺序点由一个分号标记,这意味着一个赋值语句中,赋值运算、增量运算、减量运算所做的全部改变必须在程序进入下一个语句前发生。
由于前面两种情况都是在一个顺序点之前,即在一条语句中,所以其执行顺序可能是从左到右,也可能是从右到左,这由不同的编辑器决定,所以最后的值可能和设计者的意向相差甚远。