1. NULL의 사용여부가 다르다.
- 우선 포인터는 NULL값을 허용한다.
int *p = NULL;
하지만 초기화를 꼭 해주어야 된다. 초기화를 하지 않고 사용을 할 경우 에러가 나게 된다.
NULL을 참조하고 있는 변수에 접근할 때 에러가 발생하므로
p = 110; //X
if(p) p = 110; //O
포인터가 NULL을 참조하고 있지 않을 때에만 값을 대입할 수 있도록 하는 것이 좋다.
- 레퍼런스는 NULL값을 허용하지 않는다.
2. 참조 대상 할당 및 접근
- 포인터는 할당할 때에 참조 대상에 대해서 &연산을 통해 주소값을 할당합니다.- 레퍼런스는 참조 대상자체를 할당합니다.
int a = 100;
int *p = &a; // 포인터는 주소를 할당
int &r = a; // 레퍼런스는 대상을 직접 할당
- 레퍼런스는 선언과 동시에 초기화를 해주지 않으면 에러가 발생한다.
도움 사이트 : gracefulprograming.tistory.com/11
'C++ > Basic' 카테고리의 다른 글
[C++] const 포인터 (0) | 2021.06.07 |
---|---|
함수 포인터 (0) | 2021.05.17 |
call by value와 call by reference의 차이 (0) | 2021.04.29 |
문자열 관리 (0) | 2021.04.27 |
알파벳 대소문자 관리 (0) | 2021.04.27 |