为什么输出有差异?

时间:2013-07-20 12:30:09

标签: java c

为什么输出会有差异?

class Amie
{
   public static void main(String...a)
   {
       int i=5;
       i=++i/i++;
       SOP(i);
   }
}

OUTPUT = 1

在C ---

void main()
{
    int i=5;
    i=++i/i++;
    printf(i);
}

OUTPUT = 2

1 个答案:

答案 0 :(得分:0)

Java标准确实对如何评估此类表达式进行了规定,并且只有一个可能的答案 - 1。

如果是C,则无法保证标准可能进行优化。您可以从其他编译器生成的可执行文件中获得2个以及1个。所以它在C

中是未定义的行为