1. [전산] 매개변수, 인수, 파라미터 (Argument,Parameter) 이란?
ㅇ 각 프로그램 모듈/부프로그램/함수/프로시저 간에 데이터를 넘겨주는데 쓰이는 언어 구성자
- `파라미터/매개변수(Parameter)`,`아큐먼트(Argument)/인수(引數)/인자` 라고도 함
2. [전산] 매개변수의 구분
ㅇ 실 매개변수/실 인수 (Actual Parameter, Actual Argument)
- 호출 하는 측의 매개변수
- 전달 하는 용도로, 실제 값이 저장되어있는 변수
. 이때의 변수는, 해당 스코프 내에서, 실제 값을 저장하고, 쓰이는 변수(식별자)를 말함
- 함수 호출시에, 실 매개변수를 사용하여 형식 매개변수에 값을 전달할 수 있는데,
. 이러한 실 매개변수는, 굳이 변수 만 되는 것이 아니라,
. 상수,변수,수식 등 값으로 평가될 수 있는 어떤 것이어도 상관 없음
ㅇ 형식 매개변수/가 인수 (Formal Parameter, Formal Argument)
- 호출 받는(피호출)측의 매개변수
- 전달 받는 용도로, 쓰이는 변수
- 함수 호출시에, 형식 매개변수는 그에 대응하는 실 매개변수의 값,위치,이름 등을 전달 받음
- 함수 선언 또는 함수 정의 시에, 사용되는 변수 ☞ 함수 선언, 함수 정의 참조
3. [전산] 매개변수의 전달 기법 구분
※ 부프로그램/함수 간의 자료 전달 방식의 구분
ㅇ 값 전달 (Call by Value)
- 실 매개변수(호출문)의 값 자체를 형식 매개변수(피호출문)에 전달하는 방법
. 가장 일반적인 데이터 전달 방법으로,
. 함수 간의 독립성 유지에 적합한 방식
- 例) C 언어에서 전형적인 경우
ㅇ 참조 전달 (Call by Reference) / 주소 전달 (Call by Address)
- 실 매개변수의 주소(l-value, Address) 또는 포인터를 형식 매개변수에 넘겨주는 방법
- 특징 : 실 매개변수와 형식 매개변수 간에 기억장소를 공유하게 됨
. 즉, 실 매개변수와 형식 매개변수가 동일 변수 임
- 例)
. 주소를 포인터 타입의 매개변수로 직접 전달
. 단, 배열의 경우, 배열 이름이 배열 주소이므로 자연스레 주소 전달이 이루어짐
ㅇ 이름 전달 (Call by Name)
- 형식 매개변수(피호출)의 이름이 사용될 때, 그에 대응되는 실 매개변수의 이름으로 대치