함수 매개 변수와 인수 (Function parameters and arguments)
정의를 다시 살펴보겠다.
매개 변수(function parameter)는 함수에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수를 의미한다.
즉, 매개 변수는 함수 선언에 선언된 변수다.
void foo(int x); // 선언(함수 원형) -- x는 매개 변수(parameter)
void foo(int x) // 정의(또는 선언) -- x는 매개 변수(parameter)
{
}
인수(argument)는 호출자가 함수에 전달한 값이다.
foo(6); // 6은 매개 변수 x에 전달되는 인수
foo(y+1); // y+1의 값은 매개 변수 x에 전달되는 인수
함수가 호출되면 함수의 모든 매개 변수가 변수로 생성되고, 인수의 값은 매개 변수로 복사된다.
void foo(int x, int y)
{
}
foo(6, 7);
인수 6과 7을 사용하여 foo(6, 7)
함수를 호출하면 foo의 매개 변수 x가 생성된 후 값 6이 할당되고, 매개 변수 y가 생성된 후 값 7이 할당된다.
함수 블록 내에서 매개 변수가 선언되지 않았지만, 함수 매개 변수는 지역 범위(local scope)를 가지고 있다. 이것은 함수가 호출될 때 생성되며, 함수 블록이 끝나면 소멸한다는 의미다.
void foo(int x, int y) // 여기서 x와 y가 생성된다.
{
} // x와 y는 여기서 소멸된다.
함수에 인수를 전달하는 3가지 방법이 있다.
- 값으로 전달(pass by value)
- 참조로 전달(pass by reference)
- 주소로 전달(pass by address)
다음 포스트에서 위 3가지 방법을 살펴볼 예정이다.
번역: 이 포스트의 원문은 http://www.learncpp.com/cpp-tutorial/71-function-parameters-and-arguments/ 입니다.