Здравствуйте, k55, Вы писали:
k55>Поясни пожалуйста, каким образом переполнение... k55>влияет на k55>for(int i=0; i < 10; ++i)
Компилятор вместо «i < 10» статически подставляет «true», потому что полагает i не выходящем из диапазона [-2, 2].
А полагает он это, потому что может. Это его способ отрицания реальности. Если закрыть глаза на ++i, то переполнение исчезнет. Закрыть глаза — одна из возможных реализаций неопределённого поведения.