변수 a와 b의 값을 서로 바꾸는 swap함수를 구현하시오.


풀이)

#include <stdio.h>

void swap(int* num1,int* num2);


int main()

{

int a = 10;

int b = 20;

printf ("%d %d\n",a,b);

swap(&a, &b);

printf ("%d %d\n",a,b);

return 0;

}


void swap(int* num1,int* num2)

{

int tmp;

tmp = *num1;

*num1 = *num2;

*num2 = tmp;

}

a와 b의 주소를 swap 함수의 전달해주고 이 주소값을 num1 과 num2라는 포인터로 받아준다.

num1이 가리키는 10(a의 주소값)의 값을 tmp에 저장하고 *num1은 20(b의 주소값)을 참조한다.

마지막으로 *num2는 10(a의 주소값)을 가리킨다.


'프로그래밍 > C언어' 카테고리의 다른 글

아스키 코드표  (0) 2013.02.15
포인터 배열 예제  (0) 2012.12.17
C언어 포인터  (0) 2012.12.10
C언어 중첩 반복문 + 배열  (0) 2012.12.10
C언어 반복문  (0) 2012.12.10
Posted by 태평세월
,