小弟我运行出来的答案如何不对呢

我运行出来的答案怎么不对呢?
vs2013运行的



#include <stdio.h>
int main()
{
int i = 8;
printf("The raw value: i=%d\n", i);
printf("++i=%d\n++i=%d\n--i=%d\n--i=%d\n", ++i, ++i, --i, --i);
return 0;
}


The raw value: i=8
++i=8
++i=8
--i=8
--i=8
请按任意键继续. . .






答案应该是

The raw value: i=8
++i=8
++i=7
--i=6
--i=7


还有



#include<stdio.h>
int main()
{
int i = 8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}


8
8
7
8
-7
-8
请按任意键继续. . .


应该是这个吧
8
7
7
8
-7
-8



这是怎么回事?


------解决思路----------------------
不确定操作,参看:http://bbs.****.net/topics/370153775
------解决思路----------------------
理论上的原因是,标准没有规定,编译器随便处理的。

------解决思路----------------------
返回的都是第一个i++