++运算符前置和后置有关问题,求高手解答

++运算符前置和后置问题,求高手解答main(){ int i3,m m(i++)+(++i)+(++i)+(++i)+(i++)printf(\n%d ,

++运算符前置和后置问题,求高手解答
main()
{ int i=3,m ;
  m=(i++)+(++i)+(++i)+(++i)+(i++);
  printf("\n%d ",m);
}

请问m的结果是多少?

这段代码用java和C#运行m结果为28,用VS2010运行m结果为30,用vc6.0运行m结果为25

求大神指点迷津!

[解决办法]
纠结于这个没用啊。。。。。。。。。。。
可读性太差了,工作中不会这么写的
[解决办法]

探讨
这个问题,俺再坛子里面看到不下30次了。

对于这个问题,不同的编译器的结果是不同的。

不要在同一个语句中,对同一个变量使用两次或以上次的++/--,这样的行为在标准中是未定义的。

[解决办法]
探讨
各个编译器的执行结果都不相同,楼主是不是该怀疑代码本身有问题了呢?
google“求值顺序 副作用”