Я прошу прощения, если это спрашивается странным образом, я впервые задаю вопрос здесь. Поменяв местами две переменные, я наткнулся на эту строку после поиска в Google:
x = x^i^(i = x);
В контексте у меня есть два целых числа i и x, и эта строка меняет их значения. Я пытался понять логику c, стоящую за этим, и я не могу понять это. Самое близкое, что я пришел, - это понимание того, что в математическом масштабе они равны. Бросив его в онлайн-калькулятор, вы увидите, что обе стороны равны x. Самое близкое, о чем я могу подумать:
(i = x) - ложь, так что это ноль?
, поэтому я ^ 0 равен 1
, поэтому x = x ^ 1
Но даже с этим я все еще не могу понять, как это меняет местами два числа.