본문 바로가기

C

[C언어] 실습: swap 함수 구현하기

반응형

swap 함수 구현하기


swap은 두 변수의 값을 바꾸어주는 함수이다.

 

#include<stdio.h>

int adder(int x, int y);
void swap(int, int);
void swap1(int *x, int *y);

int main(){
   // 선언문
   int x, y, res;

   // 입력문
   x = 10;
   y = 20;

   // 처리문
   res = adder(x, y);   // Call By Value, 사본

   // 출력문
   printf("%d + %d = %d\n\n", x, y, res);

   printf("main x = %d, y = %d\n", x, y);
   swap(x, y);   // 함수 호출, Call By Value(사본)
   printf("main x = %d, y = %d\n\n", x, y);   // main에 아무 영향을 주지 않는다.

   swap1(&x, &y);                           // Call By Reference(원본)
   printf("main x = %d, y = %d\n", x, y);   // main에 영향을 주어 값이 바뀐다.

   return 0;
}

int adder(int x, int y){
   return x + y;
}

void swap(int x, int y){      // Call By Value(사본)
   int tmp = x;
   x = y;
   y = tmp;
}

void swap1(int *x, int *y){   // Call By Reference(원본)
   int tmp = *x;
   *x = *y;
   *y = tmp;

   printf("\n-----------------------\n");
   printf("swap1 : x = %d, y = %d\n", x, y);     // x, y의 주소값을 출력한다.
   printf("swap1 : x = %d, y = %d\n", *x, *y);   // x, y에 저장된 값을 출력한다.
   printf("\n-----------------------\n");
}

 

반응형