포인터, 참조자 차이점 (작업중)

tahn·2022년 10월 9일
0

C++

목록 보기
3/8

차이점

참조자는 NULL값을 저장하지 못한다.
포인터는 NULL값을 저장할 수 있다.

int a = 3;
int & aa = a; // 주소를 참조
//const int aa2  = a; //값을 복사

int b = 1;
int & aa = b;
a = b; // a 가 b 로 대체됨. <= 이게 포인터랑 다른점

이때, const 를 안바꾸면 aa를 바꿀때 a도 같이 바뀐다.

여기서 포인터와 내부적으로 다른점은 주소값을 대하는 방식에 있다.

먼저 포인터의 경우

int a = 3;
int *aa = &a;
int b = 1;
a = b;

cout << &aa << endl; // 1 이 나옴

위 코드에서 내부적으로는

const 를 붙이면, 아예 두개를 별개로 보겠다는 것.

만약, 참조하고 있는 수를 바꾸려면 aa2 처럼 값을 복사해서 쓰면 편하긴 하지만, 성능면에서 떨어짐. 모든 복사는 성능이 떨어진다고 봐야한다.

profile
html 개발자

0개의 댓글