예전/C, C++

call by ~

showmiso 2014. 12. 10. 16:40



call by Value

call by Reference




위 코드를 실행하면, 




위와 같다.


x와 a의 주소는 다르다. 즉 다른 변수이다.

하지만, x와 ptr은 주소가 같다. 즉 같은 변수이다. 

왜냐하면 call by reference로 주소를 전달 했기 때문이다.


여기서 자주 쓰이는 예로 swap 함수를 들 수 있다.



포인터에 대한 이야기가 나왔으니 추가적으로, 


[scanf & 쓰는 이유]



이때, scanf는 변수의 주소를 입력받는다. 


scanf함수는 main함수와는 별개이기 때문에 main 함수 변수의 위치(주소)를 알 수가 없기 때문에

&를 붙여서 함수의 주소를 알려준다.



[참고] http://saelly.tistory.com/370