Нет никакой разницы между двумя версиями , когда компилируется с помощью современного компилятора, который соответствует стандарту C99 или выше вместо определения i
внутри скобок, i
имеет свою область действия и время жизни только внутри соответствующего l oop.
За пределами соответствующего l oop i
, который вы используете внутри l oop, не существует. Вы не можете использовать его дважды для другого l oop.
Когда вы пытаетесь скомпилировать код в версии компилятора / компилятора, то есть до стандарта C до C99 с определением i
внутри скобок вы получите ошибку компиляции, просто потому что она еще не была введена в язык.
Оба метода имеют свои преимущества и недостатки.
Это причина какой компилятор или версию компилятора вы используете, если вы хотите использовать i
после относительного l oop и, тем не менее, вопрос стиля и личного вкуса.
Потеряю ли я баллы на тесте ?
Ну, если бы он / она явно настаивал на этом (даже если вы используете современный компилятор), я бы не стал его беспокоить и просто объявил бы i
перед относительной l oop и все в порядке.
Также иногда (если не часто) запрещено использовать методы, не изученные в классе. Вполне возможно, что это придирчивый, но подходящий для этого пример.