레퍼런스와 포인터의 차이


레퍼런스를 쓰면 코드 읽기, 쓰기가 쉬워지는 건 아는데 둘은 정확히 어떤 차이가 있는 건가요?

  • 2016년 01월 21일에 작성됨

조회수 182


1 답변


좋아요
0
싫어요
채택취소하기
1. 레퍼런스는 만들어진 뒤에는 바뀌지 못하는 반면, 포인터는 몇 번이나 재할당이 가능합니다.
2. 포인터는 아무것도 안 가리킬 수 있지만(NULL), 레퍼런스는 NULL일 수 없습니다.
3. pointer arithmetics는 있지만 reference arithmetics는 없습니다.

예를 들면,

void getPtr(int* ptr){
    getPtr(ptr+5); //ok
}

void getRef(int& ref){
    getRef(ref+5); //not ok
}

입니다.

알고리즘이나 자료구조를 구현할 때는 포인터를 주로 쓰고 그 외의 경우는 레퍼런스를 주로 사용합니다


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close