在C++中, 函数调用时实参的求值顺序并没有被规定, 也就是说不同编译器下, 产生的运算结果可能不同, 此处以VS为开发工具, 仅探讨在VS中C++在函数调用时对实参求值顺序的一个处理流程.首先如图
定义了一个newtest函数用来输出main函数传递过来的值, 接受参数为三个, 在main函数中定义了i, j两个变量并初始化为1, 首先我们只用到i, 依次传递给newtest函数++i, i, i++, 最后在main函数中输出I, 返回0, 得到输出结果如图
我们可以看出, ++i输出结果为3, i输出结果为3, i++输出结果为1, 此时我们对main函数newtest函数的调用进行修改, 如图
,进行输出得到结果如图
再修改为
进行输出得到结果如图