请不要再纠结这种和编译器细节有关的东西了,因为第一你不需要了解,第二如果你需要了解那只能是你在写这个编译器,第三你了解的再多也可能和平台、CPU等有关系——他们随时可以变化。一句话,这不是推荐的代码风格,请避免这种写法。我在我的Mac上用i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)测试,结果和你说的一样。可能出现这种情况的理由是:cout<<i++<<" "<<i++<<endl;//输出1 0等价于operator<<( operator<<( operator<<(cout, i++), " "), i++);