Используя вновь объявленную переменную в инициализации (int x = x + 1)?

Я просто наткнулся на поведение, которое удивило меня:

При написании:

int x = x+1;

в C / C ++ - программе (или даже более сложном выражении, включающем только что созданную переменную x), мой gcc / g ++ компилируется без ошибок. В приведенном выше случае Х равен 1 впоследствии. Обратите внимание, что в предыдущей декларации нет переменной x в области видимости.

Поэтому я хотел бы знать, является ли это правильным поведением (и даже может быть полезным в некоторых ситуациях) или просто особенностью синтаксического анализатора с моей версией gcc или gcc в целом.

Кстати: следующее не работает:

int x++;

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

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