Call by Value vs Call by Reference

·2023년 4월 20일
0

Call by Value

  • 값 전달 방식으로 매개변수로 전달
    • 인수를 함수에 전달하면, 새롭게 생성된 매개변수에 전달받은 값이 복사되어 저장됩니다.
    • 이처럼 매개변수에 저장된 값은 전달받은 데이터의 복사본으로, 함수 안에서 변경되어도 함수 밖의 원본 데이터에는 영향을 주지 않습니다.
  • 데이터 값을 복사해서 함수로 전달하기 때문에 원본의 데이터가 변경될 가능성이 없다.
  • 인자를 넘겨줄 때마다 메모리 공간을 할당해야해서 메모리 공간을 더 잡아먹는다.

Call by Reference

  • 프로그래밍에서 매개변수를 함수에 전달하는 방법중 하나
    • 원래 변수에 대한 주소 값을 함수에 전달 함으로써, 함수 내에서 변수의 값을 직접 변경할 수 있다.
    • 함수 내부에서 발생하는 변경 사항이 원래 변수에도 반영되어 유지된다.
  • 큰 데이터 구조를 효율적으로 전달 할 때 사용
    • 복사를 피하기 때문에 메모리 사용량이 줄어든다.
  • 객체 상태를 변경할 때 사용
    • 객체의 멤버 함수는 객체의 주소를 통해 호출되므로 직접적으로 변경할 수 있다.
  • 원본 값이 변경될 수 있다는 위험이 존재
profile
개발자가 되는 과정

0개의 댓글