parameter passing massage
call by value : 메모리에 새로 할당하여 그곳에 값을 복사해서 넣어준다.
call by reference : 주소 값 자체를 보내준다.
따라서 call by value 는 함수안에서 값만 활용하고 싶을 때에 사용하고 call by reference 는 그 값을 받아와서 수정까지 하고 싶을 때에 사용합니다.
call by value 로 나타낸 함수 이다. swap 함수안에서 수정이 되고, swap 함수가 끝나면 새로 할당 된 값들이 사라지기에 최종 적으로 수정이 되지는 않는다.
call by reference 를 이용한 함수이다. 위와 같이 가져오게 된다면 swap 함수에서 가리키는 곳이 main에 있는 a 와 같기에 수정한 값이 swap 함수가 끝나도 수정값이 남아 있다. 따라서 편하게 생각 하면 main에 있는 a 를 swap 함수 안에서는 x 라고 부르는 것이다.
parameter 가 argument 의 alias가 된다.
위는 call by value 로 주소 값을 가져와서 call by reference 처럼 활용한 함수이다.
Passing an Array
위는 call by reference 의 형식으로 array 를 보내준 것이다.
위는 call by value 의 형식으로 array 를 보내준 것이다. 이때에 array 의 이름 자체가 맨 처음의 주소 값과 같으므로 &를 붙이지 않고 넘겨야 한다.