더북(TheBook)

상수 객체는 변경 불가능 객체입니다. 변수 값을 바꾼다는 의미는 변수 이름이 가리키는 메모리 공간의 값을 직접 바꾸는 게 아니라 바꾸고자 하는 상수 객체를 참조하는 것입니다. #4는 xvalue가 가리키는 상수 객체를 참조하게 하는 코드입니다. 다음 행에서 출력하면 x20이라고 나옵니다.

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

073_2

그림 5-11 call by object reference 스택 프레임 ③


change_value 스택 프레임이 사라지면서 change_value() 함수의 지역 변수 xvalue가 사라졌습니다. 또한 레퍼런스 카운트(reference count)0이 된 상수 객체 20도 사라졌습니다. x를 출력하면 10이 나옵니다. 값이 변경되지 않았지요? 분명 이전 절에서 알아본 값에 의한 전달 방식이나 참조에 의한 전달 방식은 아닙니다.

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