a=5,b=10
c=a++ + ++b+a*b
C++里面算的和JAVA不同,为什么啊?

解决方案 »

  1.   

    因为两种语言的编译器不同,计算a++或者b++的时间与计算a*b的时间可能会有差异,所以会造成这个结果不同,为了保证结果的正确,楼主最好还是将表达式的每一个部分加上一个括号,这样就可以明确告诉编译器先计算哪个部分,例如:a=5,b=10;c=(a++) + (++b)+(a*b) 
      

  2.   

    这个东西不为什么
    编译器处理的方式不同
    就像:
    int j = 0;
    for(int i = 0; i < 10; i++) {
    j = j++;
    }
    C与Java处理的结果也不一样吧
      

  3.   

    不一起是很正常的吧,不同版本的JDK运算结果还可能不一样呢。自己编程加几个括号就行了。其实这种东西是应试教育的产物。