글
(1) 싱글 포인터의 swap() 함수
- 변수 A, B의 주소값을 넘겨 swap() 함수에서 포인터변수 a와 b에 저장한다.
- call by reference 는 참조에 의한 호출로 인자로 전달된 주소가 가리키는 변수의 조작을 함수 내에서 가능하게 한다.
(2) 더블 포인터의 swap() 함수
- 싱글 포인터 처럼 포인터 pA와 pB 값을 넘기면 call by reference가 아니라 call by value가 되어 값의 복사가 일어난다.
- 그렇기 때문에 포인터 pA와 pB의 주소값을 넘겨준다.
- pA와 pB는 싱글 포인터이므로, 이들의 주소값은 더블 포인터를 통해서 저장되어야한다. (**a 와 **b)
- swap()함수 내에서는 **a -> *pA -> A 를 가리키게 된다.
- 더블 포인터의 call by reference를 통해 swap()함수 내에서 pA가 가리키는 값과 pB가 가리키는 변수를 변경 가능하다.
(3) 결과
- 결과는 싱글 포인터와 더블 포인터가 동일하다.
'P rogramming > C Language' 카테고리의 다른 글
표준 입출력과 버퍼 :: fflush() (0) | 2012.07.01 |
---|---|
문자와 문자열 입출력 함수 :: get() & put() (0) | 2012.07.01 |
구조체와 구조체포인터 (10) | 2012.03.07 |
deprecated conversion from string constant to 'char*' - Compile Error (0) | 2011.11.03 |
access() 함수 (0) | 2011.10.31 |
RECENT COMMENT