А где фигурные скобки-то?
У Вас это скомпилировалось??
Уже при оценке 1-й строки в деталях ошибка:
i=1 выполняется 1 раз, а
i++ -
раз.
Однако вопрос, а Вам действительно нужна именно такая точность? Обычно оценка имеет вид
, в крайнем случае еще обращают на действия, которые составляют константу перед главным членом.
Кроме того, реальная скорость будет иная. Т.е. вот если бы код исполнялся именно так, как мы его понимаем, то эта оценка была бы еще правдоподобна. Однако компилятор преобразует код в ассемблерные инструкции, т.е. член
можно сразу в мусорку выбрасывать. Далее, инструкции выполняются на конвеере (я ту могу наврать - проверяйте меня), там, как я помню, что-то типа нескольких линий (2,4,8), на которых выполняются эти инструкции, без учета конвеера можно выкидывать и коэффициенты перед
. Далее,
if-ы на конвеере работают довольно весело: посмотрите вооот этот пост
Ветвления и скорость выполнения программ. Прочитав его, Вы поймете, почему нельзя точно знать коэффициент при
, раз уж
if будет внутри цикла.
Т.е. надо как-то адекватнее все это понимать хотя бы.