받는 함수는 두가지로 받을수 있죠.
call by value와 call by reference입니다.
예를 들어볼까요.
만약 님이 kbc방송국에 있는 편집자입니다.
테이프를 편집해야하는 상황입니다.
테이프를 달라고 요구합니다.
이게 파라미터 값 p를 달라는거죠. move(p);
근데 받을때 &로 받을수 있고, 그냥 받을수 있죠.
&로 받을땐 테이프 원본을 받는다고 생각하시면 됩니다.
그렇다면 이것을 고치면 어떻게 될까요. 원본이 고쳐지겠죠. 원하는대로요.
반면에 &가 없을때는 테이프 원본을 받는게 아니라 복사본을 받는다고 생각
하면 됩니다. 그렇다면 님은 이때는 원본이 아닌 복사본을 이용하는겁니다.
이것을 지지고 볶아도 원본은 어느한곳에서 고스란히 안바뀌고 있죠.
전자가 call by reference(참조) 이고 후자가 call by value(값전달) 입니다.
자료구조론을 좀 공부하시면 도움이 많이 되실겁니다.
move(Point p) 에서 p는 Point구조체만큼 크기가 정해져서 스택에 놓이구요.
move(Point& p)에서 p는 파라미터의 주소를 참조하기때문에 32비트라는
주소크기를 가지게 됩니다. 그럼
☞ 본 게시판에서 모발이식 수술 후기는 신고 바랍니다. (삭제 및 탈퇴)
댓글