티스토리 뷰

C++

20160513_포인터와 함수

cho22 2016. 5. 17. 00:59
반응형

1. 함수의 특징

- 함수에 인자로 값을 주면 값을 복사하기만 할 뿐, 실제 복사는 이루어지지 않는다. 이것을 call by value라고 한다. 

예를 들어 mySwap 함수를 만든다면 main함수에서 인자를넣어 mySwap을 호출 할 것이다. 

a와 b에 3과 5를 넣어 mySwap을 호출 했지만, 실제로는 mySwap이라는 함수에 새로운 int a, int b의 공간이 생겨 3과 5라는 값이 복사된것이다.

mySwap 을 실행 한 뒤에도 원래 main의 저장공간 a, b에는 변화가 없으므로 swap이 되지 않았음을 확인 할 수 있다. 

그렇다면 실제 main의 a와 b의 값을 바꾸려면 어떻게 해야하는가

2. 포인터를 사용한 함수

함수에 인자로 주소값을 주면 그 주소값에 직접 접근하여 값을 변화시켜 swap을 실행 할 수 있게 된다. 이것을 call by reference라고 한다. 

함수에 주소값을 넣어주게 되면 main에서 만든 a와 b의 주소를 넘겨주고, mySwap 에서 넘겨받은 주소에 접근하기 때문에 같은 변수에 접근하게 되어 swap이 이루어 지는 것을 확인 할 수 있다. 


반응형

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

20160517_포인터로 별찍기  (0) 2016.05.22
20160516_콘솔 전투게임 만들기  (0) 2016.05.19
20160512_포인터  (0) 2016.05.17
20160511_빙고게임만들기  (3) 2016.05.12
20160510_함수  (0) 2016.05.12
댓글