Как работает оператор запятая?

Почему

delete a, b            //освобождает только a
int a, b;              //создаст два int
return a = 1, b = 2;   //вернет 2

Везде оператор запятая, однако работает по-разному


Ответы (1 шт):

Автор решения: Harry
delete a, b;

Приоритет delete выше, поэтому это выражение рассматривается как

delete a;
b;

Тут

int a, b;

это не оператор "запятая", так же, как не оператор "запятая" и в, скажем, вызове

pow(x,y);

Здесь

return a = 1, b = 2;

return возвращает выражение a = 1, b = 2, которое рассматривается как

a = 1;
b = 2;

при этом значением всего выражения становится значение последнего подвыражения - b = 2, т.е. двойка...

→ Ссылка