본문 바로가기

Programming/C++

참조자와 함수


C에서부터 계속해서 나오고 또 나오는 함수이야기가 C++에서 나오게 되네요. 정말.... 함수로 시작해서 함수로 끝나네요.

먼저 사전지식이 필요한데요.

Call by value 와 Call by reference 입니다. (Call by address도 있던데 뭐 reference와 비슷합니다. 굳이 따로 정의할 필요는 없다고 생각되네요.)

바로가기: (c 포스팅하면서 추후 수정하겠습니다.)








각각 Call by Value와 Call by Reference 입니다.



Call by Value는 함수 내에서 만 변경되고, 함수 밖에서는 변경되지 않습니다.

Call by Reference는 함수 외에서 값을 받아와서 변경이 가능합니다.



어렴풋이 기억이 나시나요??







위 예제를 보시면 받는 매개변수가 참조자로 되어있습니다. 


참조자는 선언과 동시에 초기화를 시켜줘야 하는데 SwapFunc 함수에서는 초기화를 시켜주고 있지 않습니다.

이유는 매개변수는 함수가 호출될때 초기화를 하기 때문에 num1, num2 참조자는 값을 받아서 초기화가 이루어집니다.





val1 이름에 num1 이라는 참조자가 생기고, val2에 num2 라는 참조자가 생기게 됩니다.


각 참조자들을 이용해서 값이 변경이 가능하죠.




참조자로 값의 변경이 가능하다는 것을 알고계시면 될 것 같습니다.

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

클래스와 객체  (0) 2015.06.01
new & delete  (0) 2015.06.01
참조자 Reference  (0) 2015.03.20
자료형 bool  (0) 2015.03.19
using  (0) 2015.03.19