23. 참조자

Yongs12 ㅣ 2023. 6. 14. 20:24

C++에서 참조는 포인터와 비슷하지만 기존 변수에 대한 별칭이라고 볼 수 있다.
기존의 포인터는 일종의 변수이기 때문에 가리키고 있는 변수를 변경할 수 있었지만 참조자를 사용하면 가리키고 있는 변수를 바꿀 수 없다.
컴파일러가 인지하는 가상 변수이다
형 안정화 const를 이용한 포인터와 동일하게 작동한다.

 

참조 사용 예시

int a = 10;

// &를 사용한다.
// 참조를 통해 a의 또 다른 이름인 참조자b를 만든다.
int& b = a;

// 포인터와 같이 b의 값을 변경하면 a가 바뀐다.
b = 20;




Debug 모드로 포인터 변수와 참조자의 차이

포인터 변수와 참조자의 차이를 알아보기 위해 선언 및 정의



원본a의 주소 , 참조자aR의 주소 , 포인터 변수 aP의 주소


위와 같이 참조자는 원본의 별칭이라는 말 답게 메모리 주소가 원본 a와 같다
하지만 포인터 변수는 가리키는 변수이기 때문에 자신만의 메모리 주소에 값으로 원본 a의 메모리 주소를 담고 있다.



'C, C++' 카테고리의 다른 글

25. 함수 다중정의 (OverLoading)  (0) 2023.06.16
24. 범위기반 for문  (0) 2023.06.15
22. c++ 메모리 동적할당  (0) 2023.06.13
21. auto 자료형  (0) 2023.06.12
20. namespace  (0) 2023.06.11