서로 다른 두 변수의 값을 바꾸기 위해서 보통 '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







'Language > C' 카테고리의 다른 글

간단한 변수 값 스왑 팁  (0) 2014.05.22
C언어로 패스워드 입력(* 마스킹)  (2) 2014.05.19
[C언어] 입력 버퍼 지우기  (0) 2014.03.07
[C언어] 웹 사이트로 접속 요청  (1) 2014.03.07

+ Recent posts

티스토리 툴바