Любопытная фича — как просто поменять местами числовые переменные без буфера при помощи побитовой операции 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; }
Уличная магия, в рот мне ноги!