考慮:爲什麼輸出的不同之處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