Call by Value

함수를 호출하면 그 함수의 지역변수를 할당하기 위해 스택 프레임이 생성되는데, 이 공간은 함수가 종료되면 사라진다. Call by Value로 값을 전달하는 것은 변수의 값을 복사해서 전달하는 것이다. 이 복사된 값은 함수가 종료되어 스택 프레임이 사라질 때 지역변수와 같이 사라진다. 따라서 함수 안에서 값이 변경되어도 외부에 있는 값은 변경되지 않는다.

 

 

Call by Reference

Call by Reference로 값을 전달하면 변수의 주소를 전달하게 되고, 함수 안에서 주소를 이용해 값을 변경하면 외부에 있는 값도 같이 변경된다.

 

 

Call by Assignment

파이썬에서 사용되는 방식으로, 함수에 immutable(int, float, string, tuple)한 객체를 전달하면 Call by Reference로 전달이 되나, 이를 변경하면 Call by Value로 변경되어 외부 값에 영향을 주지 않는다. 반면 mutable(한 객체를 전달하면 자동으로 Call by Reference로 전달이 된다.

'CS > 알고리즘' 카테고리의 다른 글

Insertion Sort in Python (삽입 정렬)  (0) 2020.06.09
크루스칼 알고리즘 (Python)  (0) 2020.05.07
프림 알고리즘 (Python)  (0) 2020.05.07
Selection Sort (선택 정렬)  (0) 2020.04.24
Bubble Sort (버블 정렬)  (0) 2020.04.24

+ Recent posts