변수 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의 주소값)을 가리킨다.