Оператор запятая имеет самый низкий приоритет, то есть сначала будет выполнен оператор присваивания (тот что в центре). Таким образом: b = b. То есть переменной b будет присвоено значение переменной b.
После предыдущего шага выражение превратится в: a, b, a. Оператор запятая попарно выполнится справа не лево.
Полная последовательность выполнения:
(a, b = b, a) => a, b = b, aa, b = b, a => a, b, a a, b, a => b, ab, a => a
С++ Выполнена часть задания. Не хватает обмена с помощью дополнительной переменной.
Примечания: Это стандартная функция обмена значениями, она действительно выполнит то, что нужно: https://github.com/BORGERone/Programming/blob/277f84638e783388284aee297ce18552edacc450/Practice/04/C%2B%2B/zadanie%204/zadanie%204/zadanie%204.cpp#L15 но этот код не сделает ничего: https://github.com/BORGERone/Programming/blob/277f84638e783388284aee297ce18552edacc450/Practice/04/C%2B%2B/zadanie%204/zadanie%204/zadanie%204.cpp#L19 Выше указанной командой можно обменять значениями переменные в Python, но с С++ данный код выполняется по другому:
b = b
. То есть переменнойb
будет присвоено значение переменнойb
.a, b, a
. Оператор запятая попарно выполнится справа не лево. Полная последовательность выполнения:(a, b = b, a)
=>a, b = b, a
a, b = b, a
=>a, b, a
a, b, a
=>b, a
b, a
=>a
При оператор запятая: https://habr.com/ru/post/116827/
Python Пока кода нет