Могу ли я написать просто
Да.
(И будет ли переменная i доступна только внутри цикла?)
Зависит от компилятора и его версии.AFAIK, в современных компиляторах я доступен только внутри цикла.Некоторые старые компиляторы позволяли мне быть доступным и вне цикла.Некоторые компиляторы разрешают доступ ко мне вне цикла и предупреждают вас о нестандартном поведении.
Я думаю (но я не уверен в этом), что "я внецикл "был использован где-то в VC98 (Visual Studio 6, который AFAIK, также имел глобально определенную переменную" i "где-то, что могло привести к чрезвычайно интересному поведению).Я думаю , что (майкрософт) компиляторы, сделанные где-то около 2000 года. 2003 начали печатать "нестандартные расширения, используемые" для использования i вне цикла, и в конце концов эта функциональность полностью исчезла.Его нет в visual studio 2008.
Вероятно, это произошло в соответствии со стандартом, но я не могу дать ссылку или цитату в данный момент.