Объявления переменных, следующие за операторами if

На другом форуме возникла проблема, и я знал, как ее исправить, но обнаружил особенность компилятора, свойственную мне. Человек получал ошибку «Встроенный оператор не может быть объявлением или помеченным оператором», потому что у него было объявление переменной после оператора if без скобок. Это не было их целью, но они закомментировали строку кода сразу после оператора if, что сделало объявление переменной де-факто строкой кода для выполнения. Во всяком случае, это фон, который подводит меня к этому.

Следующий код недопустим

if (true)
    int i = 7;

Однако, если вы заключите это в скобки, это все законно.

if (true)
{
    int i = 7;
}

Ни один фрагмент кода не является полезным. Тем не менее, второй в порядке. Чем конкретно объясняется такое поведение?

Ответы на вопрос(4)

Ваш ответ на вопрос