Возможный дубликат:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)
Согласно стандарту С++,
i = 3;
i = i++;
приведет к поведению undefined.
Мы используем термин "поведение undefined", если это может привести к более чем одному результату. Но здесь конечное значение i
будет равно 4 независимо от порядка оценки, так разве это не следует называть "неуказанным поведением"?