考虑:为什么输出的不同之处C和Java表达式M + + +(++米)
int m = 2, n;
n = m++ + (++m);
在C输出是:
m = 4, n = 4;
在Java输出是:
m = 4, n = 5;
这是怎么发生的?
考虑:为什么输出的不同之处C和Java表达式M + + +(++米)
int m = 2, n;
n = m++ + (++m);
在C输出是:
m = 4, n = 4;
在Java输出是:
m = 4, n = 5;
这是怎么发生的?
你使用哪种编译器?相同的代码为我提供了m = 4和n = 6(Visusal Studio 2010) –
这是因为您无法在没有序列点的语句中两次更改同一个变量。这会导致C中的未定义行为。 – Dani
我正在使用gcc。 – phoxis