Любопытная фича — как просто поменять местами числовые переменные без буфера при помощи побитовой операции XOR (побитовое исключающее ИЛИ):
#include <stdio.h>
int main(void)
{
int a = 3;
int b = 5;
printf("a = %d, b = %d\n", a, b);
a = a ^ b;
// a = 11
// b = 101
// a^b = 110
printf("a = %d, b = %d\n", a, b);
b = a ^ b;
// a = 110
// b = 101
// a^b = 011
printf("a = %d, b = %d\n", a, b);
a = a ^ b;
// a = 110
// b = 011
// a^b = 101
printf("a = %d, b = %d\n", a, b);
return 0;
}
Уличная магия, в рот мне ноги!
