티스토리 뷰

Development

간단한 변수 값 스왑 팁

pwnbit 2014. 5. 22. 19:14
반응형

서로 다른 두 변수의 값을 바꾸기 위해서 보통 'tmp'나 'swap'과 같은 이름의 임시 변수를 하나 더 선언한다.


하지만 이런 추가적인 변수 선언 없이도 XOR 연산이나, 연산자의 우선순위를 이용해 스왑이 가능하다.


1) XOR 연산 - 1

a = 3, b = 7;

a ^= b;

b ^= a;

a ^= b;

printf("a = %d, b = %d", a, b);



2) XOR 연산 - 2

a = 3, b = 7;

a ^= b ^= a ^= b;

printf("a = %d, b = %d", a, b);



3) 연산자의 우선순위

a = 3, b = 7;

b = (a+b)-(a=b);

printf("a = %d, b = %d", a, b);



결과)

a = 7, b = 3







반응형
댓글
댓글쓰기 폼