Если порядок вычисления подвыражений не гарантируется, то почему это правильно?
int a = 1;
a = a + 1;
Здесь компилятор может сначала оценить a
, а затем a + 1
, поэтому a может быть 1 или 2, а это не так:
a = a++;
Здесь компилятор может сначала оценить a
, а затем a++
, где a может быть 1 или 2.
Какая разница?