请问int i=1;cout<

请教int i=1;cout<<i<<i++;
#include   <iostream>
using   namespace   std;

void   main()
{
int   i=1;
cout < <i < <i++ < <endl;
}


这样子   为什么先输出2再输出1呢,多谢大家了!

------解决方案--------------------
不要写这样的代码。

cout < <i < <i++ < <endl;
一个语句中有 i 有 i++ ,
语句执行是依次的,
但是同一个语句中没有规定是从左到右的。

这样的代码是未定义行为,
结果将和编译器相关,
不同的编译器得到的结果可能不同 ...