임시 변수 없이 스왚하기
일반적으로 C에서 두 변수의 값을 바꿀때 다음과 같이 임시 변수를 만들어 처리한다.
int a = 10;
int b = 12;
int temp = a;
a = b;
b = temp;
임시변수를 만들지 않고 다음과 같이 Swap할 수 있다.
사칙연산으로 Swap하기 #
int a = 10;
int b = 20;
a += b; // a = 30
b = a-b; // b = 10
a = a-b; // a = 20
XOR연산으로 Swap하기 #
int a = 1; // 0001h
int b = 2; // 0010h
a ^= b; // a = 0011h
b ^= a; // b = 0001h
a ^= b; // a = 0010h