인수 전달 방법

: 함수 호출 시 인수 전달 방법

값에 의한 호출(Call By Value)

참조에 의한 호출(Call By Reference = Call By Address)

값에 의한 호출 VS 참조에 의한 호출

값에 의한 호출(Call By Value)

#include <stdio.h>
void swap(int x, int y);

int main(void)
{
	int a = 100, b = 200;
	printf("a=%d b=%d\\n",a, b);

	swap(a, b);

	printf("a=%d b=%d\\n",a, b);
	return 0;
}
// 함수에서의 값 교환은 함수 내에서만 적용된다.
void swap(int x, int y)
{
	int tmp;
	printf("x=%d y=%d\\n",x, y);

	tmp = x;
	x = y;
	y = tmp;

	printf("x=%d y=%d\\n",x, y);
}

참조에 의한 호출(Call By Reference)

#include <stdio.h>
void swap(int *x, int *y);

int main(void)
{
	int a = 100, b = 200;
	printf("a=%d b=%d\\n",a, b);

	swap(&a, &b);

	printf("a=%d b=%d\\n",a, b);
	return 0;
}
// 함수에서의 값 교환이 main함수에도 적용된다.
void swap(int *px, int *py)
{
	int tmp;

	tmp = *px;
	*px = *py;
	*py = tmp;

}