IT_컴퓨터_코딩_개발
[C++] 포인터와 레퍼런스의 차이(Pointer vs. Reference)
파워유저
2012. 2. 16. 11:23
일단 정의를 해보면
포인터는 다른 변수의 주소(address)를 가지고 있는 변수이고
레퍼런스는 다른 변수와 같은 주소를 가지고 있는 또다른 변수일 뿐이다.
차이점은
포인터는 선언한 후에도 다른 주소를 대입하여 사용할 수 있고
레퍼런스는 선언할 때 정해진 주소를 변경할 수가 없다.
[사용 예]
int a = 1;
int b = 2;
// 1. 선언할 때 아래와 같이 합니다.
int * ptrA = &a;
int & refA = a;
// 2. 포인터는 선언한 이후에 주소를 대입하거나 변경할 수 있다.
// 레퍼런스는 주소 변경이 안됨.
int * ptrB;
ptrB = &b;
ptrB = &a;
int & refB = b;
++(*ptrA);
++(*ptrB);
++refA;
++refB;
ptrA = &b;
refA = b;
ptrB = &a;
refB = a;