====================
변수의 값을 인수로 주는 경우
====================
#include <stdio.h>
void swap(int x, int y); // 두 변수의 값을 바꾸는 함수 선언
int main(void){
int a = 10, b = 20; // 변수 선언과 초기화
swap(a, b); // a, b의 값을 복사해서 전달
printf(“a:%d, b:%d\n”, a, b); // 변수 a, b 출력
return 0;
}
void swap(int x, int y){ // 인수 a, b의 값을 x, y에 복사해서 저장
int temp; // 교환을 위한 변수
temp = x; // temp에 x 값 저장
x = y; // x에 y 값 저장
y = temp; // y에 temp 값 저장
}
====================
포인터를 사용한 두 변수 값의 교환
====================
#include <stdio.h>
void swap(int *pa, int *pb); // 두 변수의 값을 바꾸는 함수의 선언
int main(void){
int a = 10, b = 20; // 변수 선언과 초기화
swap(&a, &b); // a, b의 주소를 인수로 주고 함수 호출
printf(“a:%d, b:%d\n”, a, b); // 변수 a, b 출력
return 0;
}
void swap(int *pa, int *pb){ // 매개변수로 포인터 선언
int temp; // 교환을 위한 임시 변수
temp = *pa; // temp에 pa가 가리키는 변수의 값 저장
*pa = *pb; // pa가 가리키는 변수에 pb가 가리키는 변수의 값 저장
*pb = temp; // pb가 가리키는 변수에 temp 값 저장
}