티스토리 뷰

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







반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
300x250