Странные результаты с использованием расширенного назначения

Я пробую разные вещи с расширенным заданием на C. Однако я не могу понять, что здесь происходит и почему. Вот пример кода:

int a = 3;
int b = 0;

a *= a = a *= a; // a = 27, b = 0

a = 3;
b = 0;
a *= b = a *= a; // a = 27, b = 9

a = 3;
b = 0;
b *= b = a *= a; // a = 9, b = 0 ???

почему b равно 0 в третьем случае?

0 ответов

Другие вопросы по тегам