如何在函数参数中评估后递增和预递增?

可能重复:
c中的后期和前期增量
未定义的行为和序列点

在这里我想知道为什么这个输出来了? 任何人都可以以适当的方式解释我

#include int main() { int a=5; printf("%d %d %d",a++,a++,++a); return 0; } 

这个程序的输出就像

在LINUX 7 6 8中

它是未定义的 – 副作用只能保证在序列点完成。

我们做不到。 这完全依赖于编译器,依赖于参数的计算顺序。