강좌 & 팁
함수의 인수 전달 방법
함수의 호출에서 인수(파라메터)의 전달 방법은 값을 전달하는 방법과 주소를 전달, 호출하는 방법이 있다.
먼저 값을 전달하는 방법부터 살펴보자
call by value 라고 하며 값 호출 방식이다.
이 방식은 실인수의 값이 형식인수로 전달되는 방식이다.
다음 예제를 보자
int plus(int a, int b )
{
int plus_value;
plus_value = a + b;
return plus_value;
}
int main()
{
int value1;
int value2;
int i;
value1 = 5;
value2 = 1;
i = plus (value1, value2);
printf("value1 + value2 = %d\n", i);
return 0;
}
함수 호출시 전달되는 대상이 실인수 그 자체가 아니라 실인수의 값이기 때문에 이런 호출 방식을 값 호출이라고 한다.
다음으로는 주소 전달 방식을 보자
call by reference 라고 하며 참조 호출 방식이라고 한다.
이방식은 변수의 주소값을 피호출자의 형식인수에게 넘겨주는 방식이다.
다음 예제를 보자
int plus(int a, int b )
{
int plus_value;
plus_value = a + b;
return plus_value;
}
void plus_one( int* value)
{
*value = *value+1;
}
int main()
{
int value1;
int value2;
int i;
value1 = 5;
value2 = 1;
i = plus (value1, value2);
printf("value1 + value2 = %d\n", i);
plus_one(&i);
printf("i = %d\n", i);
return 0;
}
참조 호출방식은 실인수의 값을 전달하는 것이 아니라 실인수의 번지를 전달 하므로 i의 값을 직접 참조 할 수 있다.