더북(TheBook)

xvalue 값을 대입했으므로 x 값은 20입니다. 주목할 점은 서로 다른 변수이므로 main() 함수의 지역 변수 x 값은 변하지 않았다는 점입니다. change_value() 함수는 change_value 스택 프레임의 지역 변수 x 값인 20을 출력하고, 실행이 끝나면 스택 프레임은 사라집니다.

그림 5-5는 change_value() 함수의 호출을 완료한 다음에 살펴본 스택 프레임 모습입니다.

068_3

그림 5-5 change_value 실행 종료 후 스택 모습(call by value)


이 상태에서 x 값을 출력하면 10이 출력됩니다. 이제 우리는 왜 코드 5-6에서 main() 함수 안의 지역 변수 xchange_value() 함수 호출 후에도 값이 변경되지 않았는지 알았습니다. 인자를 값에 의한 전달 방식으로 전달했기 때문입니다. 그렇다면 함수 호출로 x 값을 바꿀 수 있는 방법은 없을까요? 참조에 의한 전달 방식으로 인자를 전달하면 됩니다. 다음 절에서 참조에 의한 전달 방식을 알아보고 코드 5-6을 수정해 x 값을 변경해 보겠습니다.

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