Home Call by Value, call by Reference
Post
Cancel

Call by Value, call by Reference

Call by Value와 call by Reference에 대해 알아보고 차이를 배우기

질문

  • Call by Value의 특징, 장단점
  • Call by Reference의 특징, 장단점
  • C와 C++에서의 사용법은?

Call by Value와 Call by Reference

값에 의한 호출, 참조에 의한 전달(Pass by Reference)

  • 함수 호출 시 인수를 전달하는 방식
  • 함수 내부에서 인수 값이 어떻게 처리되는지
  • 함수 종료 후 원본 데이터가 어떻게 변하는지에 따라 차이가 있음

Call by Value

값에 의한 호출

  • 함수에 값을 복사해 전달하는 방식
  • 함수 내부에서는 원본 값의 복사본만을 사용
  • 함수 내부에서 해당 값이 변경되어도 원본 데이터에는 영향 없음
  • 데이터 크기가 큰 경우, 복사본 생성으로 인해 메모리 사용량이 늘어날 수 있음

Call by Reference

참조에 의한 호출

  • 함수에 변수의 참조(메모리 주소)를 전달하는 방식
  • 함수 내부에서 원본 데이터를 직접 참조
  • 함수 내부에서 해당 값이 변경되면 원본 데이터에도 영향
  • 원본 데이터를 직접 조작 가능
  • 복사본을 생성하지 않으므로 효율적

C에서의 Call by Value, Call by Reference

C는 C++와 다르게 참조자(Reference)가 없기 때문에 포인터를 사용하여 Call by Reference 방식을 구현

  • 전달 인자에 주소값(포인터)을 전달해 참조에 의한 전달을 구현

출처

평가 전략 (컴퓨터 프로그래밍)

C++ 강좌 참조자(Reference)의 개념과 함수 활용

씹어먹는 C++ - <2. C++ 참조자(레퍼런스)의 도입>

프로그래밍에서의 Call by Value와 Call by Reference 이해하기

Call by Value 와 Call by Reference

This post is licensed under CC BY 4.0 by the author.