더북(TheBook)

우리가 의도한 대로, xy의 값이 서로 바뀌려면 swap() 함수를 통해서 main() 함수 안에 있는 변수 x, y 값을 변경해야 합니다. C 언어는 함수를 통해서 이루어진 언어라고 하였습니다. 이렇게 함수를 통해서 다양한 일을 수행해야 하는 C 언어인데 값을 서로 바꾸는 간단한 문제에서도 어려움이 발생한다니 좀 불편한 것 같네요.

main() 함수에서 swap() 함수로 변수를 전달하면서 변수의 값이 복사되기 때문에, main() 함수 안에서 사용하는 변수의 값을 swap() 함수 안에서 변경할 수 없습니다. 함수는 각각 변수의 메모리 영역이 다르므로 서로에게 영향을 줄 수 없습니다.

그림 8-12와 같이 main() 함수에서 swap() 함수를 호출하면서 x, y의 값 1, 2swap() 함수 안의 변수 x, y로 복사가 이루어집니다. 이렇듯 함수 호출을 하면서 값을 전달하는 방식을 값에 의한 호출(Call by Value)이라고 합니다.

그림 8-12 | 값에 의한 호출(Call by Value)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.