티스토리 뷰

대부분의 언어에서는 pass by value를 쓴다. 그것이 안전하기 때문!!!

 

pass by value

함수 호출 시에 매개변수의 값을 복사해서 전달한다. 

 

int val = 3

add(val)

 

add함수 안에서 인자는 바꿔보았자 바깥이 val이 바뀌지 않는다. 

 

pass by reference

인자로 받은 값을 바꾸면 바깥의 값도 바뀐다. 

 

c에서는 아예 pass by reference 지원하지 않고, c++에서는 pass by reference도 지원한다. 

c에서 간혹 가다 포인터를 매개변수로 넘겨주는 것을 pass-by-reference로 가르치는 경우가 있는데 이는 명백한 오류이다.

 

pass by assignment

 mutable한 오브젝트면 pass-by-reference방식으로, immutable한 reference면 pass-by-value방식으로 동작한다. (python에선 모든 type을 오브젝트로 취급한다) 

 

출처

https://showx123.tistory.com/56

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함