이번에는 코드 5-6의 #4에서 change_value() 함수를 호출할 때의 스택 프레임을 그려보고, main() 함수의 지역 변수 x가 변경되지 않는 이유를 알아보겠습니다.
그림 5-3은 코드 5-6의 #2가 실행되기 직전에 본 스택 프레임 모습입니다.
그림 5-3 change_value 스택 프레임 ① (call by value)
change_value() 함수 스택 프레임의 x와 main() 함수 스택 프레임의 x는 서로 다른 메모리 공간에 존재하는 서로 다른 변수입니다. 값만 10으로 같을 뿐입니다.
#2 코드가 실행된 다음에 스택 프레임이 어떻게 변했는지 살펴보면 그림 5-4와 같습니다.
그림 5-4 change_value 스택 프레임 ② (call by value)