У меня есть следующий код:
int main() {
int i=0;
int j=({int k=3;++i;})+1; // this line
return 0;
}
Он компилируется и запускается. Если я удалю () из "этой строки", то он не скомпилируется.
Мне просто интересно, какое синтаксическое правило применяется здесь.
{} Содержит 2 оператора, а последний оператор указывает значение "return" этого кодового блока. Тогда зачем нужна дополнительная () пара, чтобы использовать это возвращаемое значение?