по идее 0 раз, так как условие выполнения false, т.е. это все равно что написать for(i=0;false;--i!=0); Если не учитывать что в С++ (если это не С конечно) правила неявного int нет и компайлер бы заматерился на то что i - undefined variable
Суть в том, что цикл ни разу не выполнится, т.к. изначально в условии цикла i = 0, и используется постфиксный инкремент. т.е. сначала производится проверка выполнения условия во втором выражении for(;условие;), а потом инкремент. мы вываливаемся из цикла и можем распечатать i, он будет равен 1. а во тесли мы будем юзать так (префиксный инкремент): for(i = 0; ++i;--i!=0); то зависнем
по идее 0 раз, так как условие выполнения false, т.е. это все равно что написать for(i=0;false;--i!=0); Если не учитывать что в С++ (если это не С конечно) правила неявного int нет и компайлер бы заматерился на то что i - undefined variable
ОтветитьУдалитьДа, конечно же надо было написать int i и т.д. Но просто суть не в этом ;-)
ОтветитьУдалитьСуть в том, что цикл ни разу не выполнится, т.к. изначально в условии цикла i = 0, и используется постфиксный инкремент. т.е. сначала производится проверка выполнения условия во втором выражении for(;условие;), а потом инкремент. мы вываливаемся из цикла и можем распечатать i, он будет равен 1. а во тесли мы будем юзать так (префиксный инкремент):
Удалитьfor(i = 0; ++i;--i!=0);
то зависнем