C++

C++

cheesecrust1008 2022. 4. 12. 17:43

parameter passing massage

 

call by value : 메모리에 새로 할당하여 그곳에 값을 복사해서 넣어준다.

 

call by reference : 주소 값 자체를 보내준다.

 

따라서 call by value 는 함수안에서 값만 활용하고 싶을 때에 사용하고 call by reference 는 그 값을 받아와서 수정까지 하고 싶을 때에 사용합니다.

 

call by value 로 나타낸 함수 이다. swap 함수안에서 수정이 되고, swap 함수가 끝나면 새로 할당 된 값들이 사라지기에 최종 적으로 수정이 되지는 않는다. 

call by reference 를 이용한 함수이다. 위와 같이 가져오게 된다면 swap 함수에서 가리키는 곳이 main에 있는 a 와 같기에 수정한 값이 swap 함수가 끝나도 수정값이 남아 있다. 따라서 편하게 생각 하면 main에 있는 a 를 swap 함수 안에서는 x 라고 부르는 것이다. 

parameter 가 argument 의 alias가 된다.

위는 call by value 로 주소 값을 가져와서 call by reference 처럼 활용한 함수이다. 

 

Passing an Array

 

위는 call by reference 의 형식으로 array 를 보내준 것이다. 

위는 call by value 의 형식으로 array 를 보내준 것이다. 이때에 array 의 이름 자체가 맨 처음의 주소 값과 같으므로 &를 붙이지 않고 넘겨야 한다.

'C++' 카테고리의 다른 글

C++ class  (0) 2022.05.16
C++ 추가 문법  (0) 2022.04.15
C++ 포인터  (0) 2022.04.07
c++ 변수의 scope  (0) 2022.04.07
C++ 배열  (0) 2022.04.06