반응형

 

C 언어, 임시 변수 없이 두 값 맞바꾸기

 

글. 오상문 sualchi@daum.net

 

 

임시 변수 tmp를 이용하려 a, b 값을 바꾸려면 다음처럼 작성하면 됩니다.

 

tmp = a;

a = b;

b = tmp;

 

그런데 변수가 가질 수 있는 값의 크기가 충분히 크다면 다음과 같은 코드도 가능합니다.

즉,  a+b 값이 a가 가질 수 있는 최대값과 최소값 사이에 있을 때 가능한 방법입니다.

 

a += b;   

b = a-b;  
a -= b;    

 

다음은 예제 코드입니다. 

 

 

#include <stdio.h>

 

 

 

int main()

 

{
  int a=3, b=4;
 
  a += b;    // a=3+4
  b = a-b;  // b=7-4
  a -= b;   // a=7-3
 
  printf("a=%d, b=%d\n", a, b);    // a=4, b=3 
  return 0;
}

 

<이상>

반응형

+ Recent posts