임시 변수 없이 스왚하기

자료구조

일반적으로 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