int i0 = 1;
cout << i0 << ", " << ++i0 << endl;

int i1 = 1;
cout << i1 << ", " << i1++ << endl;

が、

gcc version 4.3.3 では
2, 2
2, 1

VC++ 2008 Express では
2, 2
1, 1

となります。
私の知識では
1, 2
1, 1
となると思っていたので大変予想外な結果です。
なぜでしょうか?