❶ 关于C语言的求值顺序
"系统对求值顺序规定不拿或一样" 说明在不同的系统(其实是编译器)下的顺序是不一样的, 你只在 VC 环境下试了, 你还没在其它环境下试过!
其实这个求值顺序的根本原因是函数调用时, 参数的压栈顺序所决定的, 先被压入的, 就先被求值;
这相顺序没有标准, 所以不同环境的默认有可能不同, 但现在多数宴银的编译器都有这方面的扩展, 如 __stdcall 什么, 这些扩展的其中一个功能就是指定什么样的压栈顺序.
同一个表达式中使用导致同一对象修改两次或修改以后又被引用的晌敏宴自增, 自减和赋值操作符的任何组合的结果在 C/C++ 标准里没有规定, 所以各个编译器的行为是不确定的!