这个问题以前我也求助过,结果是很大程度上取决于编译环境不同的c环境都有可能导致不同的结果。比如 unix 的gcc 和 windows VC++ 运行同样的代码就会得出不一样的结果.....

解决方案 »

  1.   

    有点奇怪,是不是我理解错了?
    i=(i++)+(i++)+(i++)不是等于3个i之和吗?i++的意思不是指:在i参与运算后,i的值再自增1?
      

  2.   

    在一样是你列举程序中。
    C语言的结果 在不同处理器(CPU)的结果 可能都有所不同,原因是 它在运行过程中直接作用于硬件上。。
    而JAVA语言的结果,无论你用什么样的处理器 结果都会相同的,原因是 它在运行过程中先经过自身的JVM(JAVA VIRTUAL MACHINE)。这也就是JAVA跨平台性的一种表现吧。
      

  3.   

    java 
    i=3+4+5=12
    j=3+4+5+6=18
    k=3+4+5+6+7=25
      

  4.   

    java中:++属于单目运算符,级别高于+,所以有如下结果
    i=3+4+5=12
    j=3+4+5+6=18
    k=3+4+5+6+7=25
      

  5.   

    java中:++属于单目运算符,级别高于+,所以有如下结果
    i=3+4+5=12
    j=3+4+5+6=18
    k=3+4+5+6+7=25
      

  6.   

    topil(认认真真学习,塌塌实实工作)说得是对的,
    对于c的版本,由于c在不同机器下这个操作符的作用是不同的,所以不同
      

  7.   

    就是这么回事,编译器不同对表达式的理解也不同.TURBOC在对 i = 3时(i++) + (i++) + (i++)的结果为9