/*****************************************

int A = 3;

int B = 17;

 

A = A ^ B; // 비트단위 xor 연산

B = A ^ B;

A = A ^ B;

******************************************/

 

위 함수를 세부적으로 살펴보면  

int A = 3;

int B = 17;

 

A = A ^ B;

B = A ^ B;

A = A ^ B;

 0000 0011

 0001 0001

 

A = (0000 0011) XOR (0001 0001) = 0001 0010

B = (0001 0010) XOR (0001 0001) = 0000 0011

A = (0001 0010) XOR (0000 0011) = 0001 0001

 

위처럼 A와 B의 값이 바뀐것을 확인할 수 있다.

하지만 이런 방식의 경우 두 변수의 메모리 위치가 동일할 떄 동작하지 않는다는 문제점이 있다.

 

 

 

 

자료 참고 : http://hisjournal.net/blog/125

                한동훈님의 프로그래밍 스타일