본문 바로가기
Programming/C & C++

pointer 와 reference 의 차이점

by leanu 2008. 1. 2.

포인터는 그 포인터가 가리키는 대상을 변경 가능합니다.

그 대상의 물리적 위치 정보(시작 주소)를 저장하고 있으니까....


레퍼런스는 가리키는 대상을 변경할 수 없습니다.
 
레퍼런스의 대상 변수가 어느것인가가 정해지는 것은 레퍼런스가 초기화(정의와 동시에 초기화)될 때 뿐이죠.

하지만 레퍼런스는 대상을 변경할 수 없는 대신에 역참조 연산자를 안붙이고  원래의 변수처럼 사용할 수 있습니다. 기능이 제한된 아주 특수한 형태의 포인터라고 해도 됩니다.
 (이게 레퍼런스의 용도라고 할 수 있죠. 사실상 참조에 의한 호출을 위해서만 사용합니다.)

C++에서 레퍼런스가 생겼어도 포인터는 여전히 그 유용성을 갖고 있죠.
 어느 한 변수 이름이 가리키는 대상을 제어의 조건에 따라 간단히 변경할 수 있다는 것은 대단히 매력적인 일입니다. 또한 배열을 넘겨줄 때도 포인터가 유용합니다.
 (참조에  의한 호출 용도는 레퍼런스에게 뺏겼습니다. 포인터는 역참조연산자가 필요해서 불편하거든요.)

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

Unix / Linux 에서 현재시간 측정하기  (0) 2008.01.16
난수 (Random) 함수  (0) 2008.01.02
struct 와 typedef struct 의 차이점  (18) 2008.01.02
동적 할당  (0) 2008.01.02
에러시 메모리 값의 의미  (0) 2008.01.02

댓글