call by value vs. call by reference

call by value
- 인자로 받은 값을 복사하여 처리하는 방식
- call by value에 의해 넘어온 값을 증가시켜도 원래의 값이 보존된다.
- 값을 복사하여 넘기기 때문에 메모리 사용량이 늘어나고 함수 안에서 인자의 값이 변경되어도 외부의 변수의 값은 변경되지 않는다.
call by reference
- 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 주는 방식
- 값을 복사하지 않고 직접 참조하기 때문에 속도가 빠르다.
- 원래의 값에 영향을 주는 리스크가 존재한다.