함수 호출시 전달하는 매개변수에 따라 구분할 수 있는데 어떠한 종류가 있는지
- 최초 등록일
- 2009.04.25
- 최종 저작일
- 2008.10
- 6페이지/ 한컴오피스
- 가격 1,500원
목차
■ Call-by-value
■ Call-by-reference
■ Call-by-name
■ 부작용(Side effect)
■ 별명(Aliasing)
본문내용
함수 호출시 전달하는 매개변수에 따라 구분할 수 있는데 어떠한 종류가 있는지
각 구분을 설명하시오.
프로그래밍 언어에서 함수간에 매개변수를 통한 자료의 전달기법은 구현방법에 따라 크게 3가지 call-by-value, call-by-reference, call-by-name 등으로 구분하는데 피호출함수의 매개변수를 형식매개변수(formal parameter)라 하고, 함수 호출문의 매개변수를 실매개변수(actual parameter)라 한다. 실매개변수는 변수, 상수, 식 또는 함수가 될 수 있으나, 형식매개변수는 단일변수 이외의 식이나 상수로 작성하면 안 된다. 만약 피호출함수에서 매개변수를 통하여 값을 반환하려고 하면, 실매개변수 또한 단일 변수로 작성되어야 한다.
C 언어에서 기본적으로 제공되는 매개변수 전달기법은 실매개변수 값을 피호출 함수의
형식매개변수에 단순히 복사하여 값을 전달하는 call-by-value이다. 실매개변수의 값을
주소로 조회하는 call-by-reference 기법과 형식매개변수의 이름 자체를 실매개변수의 이름으로 변경하는 call-by-name 기법은 C 언어에서 제공하지 않는다.
다만 C에서 call-by-reference를 실현하려면, 구현기법에 따라 형식매개변수를 포인터형으로 선언하고, 호출함수의 실매개변수는 & 연산자를 사용하여 주소를 참조하는 방법으로 구현할 수 있다.
■ Call-by-value
Call- by-value는 단순히 실매개변수의 값을 형식매개변수에 복사함으로 구현한다. 따라서 실매개변수의 값은 피호출 함수가 실행된 후에도 변하지 않는다. 이와 같은 기법은 주로 함수(부프로그램)에 값을 전달하고 실매개변수의 값을 원형대로 보존하기 위하여 사용한다.
참고 자료
없음