为什么输出会有差异?
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
答案 0 :(得分:0)
Java标准确实对如何评估此类表达式进行了规定,并且只有一个可能的答案 - 1。
如果是C,则无法保证标准可能进行优化。您可以从其他编译器生成的可执行文件中获得2个以及1个。所以它在C
中是未定义的行为