В языке Си есть масса случаев неопределённого поведения программы - когда результат выполнения может различаться на разных архитектурах процессора, на разных компиляторх, на разных уровнях оптимизации.
Одно из правил, позволяющих избежать этой проблемы: "
никогда не используйте переменную с пред/пост-инкрементацией/декрементацией два или более раз в одном выражении".
Сергей Яковлев правильно сказал: достаточно
i++
(или
++i
, что в данном случае то же самое).