승쨩개발공부
[C++] 레퍼런스 본문
레퍼런스
원본 데이터에 접근하는 방법은 2개가 있다.
1. 포인터
주소를 통해 접근
-> 간접참조
2.레퍼런스
별명을 부여해서 접근
-> 직접참조
래퍼런스 선언
자료형 & 변수명(별명)
int iA = 10;
int& r = iA;
r = 100;
cout << "iA: " << iA << endl; // 100
cout << "r : " << r << endl; // 100
레퍼런스의 참조 메모리 변경
불가능하다.
레퍼런스는 한번 참조한 메모리를 변경할 수 없다.
-> 선언과 동시에 초기화를 진행해야만 한다.
-> NULL 초기화가 불가능하다
int iA = 10, iB = 20;
int& r = iA;
r = 100;
// iB의 값을 r이 복사 받는 것.
r = iB; // 참조 메모리 변경이 아니다! iA = iB;
r = 200;
cout << "iA: " << iA << endl; // 200
cout << "iB: " << iB << endl; // 20
레퍼런스와 const
int iA = 10;
const int& r = iA;
iA = 100; // 가능
r = 100; // 불가능
원본 데이터가 const로 인해 상수화가 되었을 경우
참조하는 변수 또한 const로 선언해야한다
const int iA = 10;
int& r = iA; // 불가능
iA = 100; // 불가능
r = 100; // 가능
레퍼런스의 크기
레퍼런스는 크기가 없다.
'C++' 카테고리의 다른 글
[C++] 조건부 컴파일 (0) | 2021.12.01 |
---|---|
[C++] 매크로(Define) (0) | 2021.12.01 |
[C++] 함수 포인터 (0) | 2021.11.30 |
[C++] 공용체 (union) (0) | 2021.11.30 |
[C++] 열거체(enum) (0) | 2021.11.30 |