обмен значений 2ух переменных без использования третей
От: pofig  
Дата: 05.05.11 12:27
Оценка:
доброго времени...
столкнулся со следующей проблемой:
не работает трюк с XOR для элементов массива

int arr[2] = {5, 7};

int i = 0;
arr[i] ^= arr[i+1] ^= arr[i] ^= arr[i+1]; // 1


После этого вместо {7, 5} в массиве лежит {0, 5} (в частности для g++).
Но, если расписать строку 1 в три, то все нормально.

В чем моя ошибка?
спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.