본문 바로가기
IT 이것저것

Call by value와 Call by reference 차이

by 관성맨 2023. 1. 16.
반응형

 

함수를 사용할 때, 함수 내에서 인자 전달방식에는 크게 두 가지가 있습니다.

 

Call by value (값에 의한 호출)
Call by reference (주소에 의한 호출)

 

 

 

 

 

Call by value (값에 의한 호출)

함수 내에서 값을 복사해서 전달하는 방식으로, 인자로 전달하는 변수를 복사하는 방식입니다.

원본은 그대로 놔두고 복사를 했기 때문에, 원본 변수와는 별개의 변수가 되며, 복사한 값을 변경하더라도 원본 변수에는 영향이 가지 않습니다.

 

즉, 원본 값은 그대로 두고 복사한 값만 바꾸고 싶을 경우에는 Call by value를 사용합니다.

 

 

 

 

 

 

Call by reference (주소에 의한 호출)

함수 내에서 주소를 전달하는 방식으로, 값을 전달하는 대신 주소값을 전달하는 방식입니다.

보통, C언어에서는 포인터를 이용하여 매개변수의 주소값을 전달하여 참조(reference)합니다.

 

즉, 인자로 받은 값의 주소를 참조하기 때문에 직접 값에 영향을 줍니다. 

 

 

 

 

 

 

 

 

 

  Call by Reference Call by Value
특징 원래의 값 보존 안됨

직접참조하여 속도 빠름
원래의 값 보존 됨

복사하여 메모리 사용량 증가

 

반응형

댓글