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

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

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

int x = x+1;

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

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

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

int x++;
9
задан Murphy 12 February 2016 в 13:21
поделиться