호빵의 IT 개발소

콜 바이 벨류(Call by Value)와 콜 바이 레퍼런스(Call by Reference)의 차이점은? 본문

CS(전공지식)/기술면접 준비

콜 바이 벨류(Call by Value)와 콜 바이 레퍼런스(Call by Reference)의 차이점은?

호빵Stack 2025. 3. 28. 22:24
Call by Value (값에 의한 호출)
  • 함수 인자로 값을 복사해서 전달
  • 함수 내부에서 값이 변경돼도 원본에는 영향 없음
  • 기본 자료형 전달 시 주로 사용
Call by Reference (참조에 의한 호출)
  • *함수 인자로 원본 변수의 참조(주소)**를 전달
  • 함수 내부에서 값을 변경하면 원본도 변경됨
  • C++에서는 참조(&)나 포인터로 구현
차이점 요약
  • 값 전달은 복사본, 참조 전달은 원본 직접 접근
  • Call by Value는 안전하지만 비효율적일 수 있음
  • Call by Reference는 효율적이지만 원본이 바뀔 수 있어 주의 필요

 

 

면접 스타일 답변 예시:

Call by Value는 인자의 값을 복사해서 함수에 전달하기 때문에 함수 내부에서 값을 변경하더라도 원본에는 영향을 주지 않습니다. 반면 Call by Reference는 변수의 주소나 참조를 전달하기 때문에 함수 내 변경이 원본에도 반영됩니다.
값 복사는 안전하지만 성능이 떨어질 수 있고 참조는 효율적이지만 의도치 않은 변경을 유발할 수 있기 때문에 상황에 따라 적절히 선택하는 것이 중요합니다.
Comments