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
반응형