// 포인터가 필요한 경우
#include <stdio.h>

void test1(int x)	// 매개변수 x는 main의 x로 초기화된 지역 변수
{
	x = 20;			// x는 test1의 지역 변수이므로 test1이 리턴할 때 소멸된다.
}

void test2(int *p)	// p는 main의 x의 주소로 초기화된 포인터이다.
{
	*p = 20;		// p가 가리키는 변수, 즉 main의 x에 20을 대입한다.
}

int ex08_04(void)
{
	int x = 10;
	test1(x);		// main의 x를 함수의 매개변수 x로 복사해서 전달한다.
	printf("test1 호출 후 x = %d\\n", x);		// x의 값은 변경되지 않는다. 

	test2(&x);		// test2 함수를 호출할 때 x의 주소를 넘겨준다.
	printf("test2 호출 후 x = %d\\n", x);		// x의 값이 변경된다.

	return 0;
}