참조자는 자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름을 붙여주는 것이다.
참조자를 선언하면 참조한 하나의 값이 두개의 이름을 갖게되는것이다.
5행에서 num1을 1020으로 초기화 했다
6행에서 참조자num2를 선언해 거기에 num1을 대입했으므로
1020은 num1으로도 num2로도 가리킬 수 있게 된것이다.
따라서 8행을 통해 9행, 10행을 거치면 8행에서 초기화 된 새 값을 출력하는걸 볼 수 있다.
12, 13행에서 보이듯이 주소값도 똑같은걸 알 수 있다.
참조자는 쉽게 비유하면 별명(별칭)이라고 생각할 수 있다.
윤성우의 별명이 흰곰이라면
"윤성우에게 전화를 걸어"와 "흰곰에게 전화를 걸어"는 완전히 똑같은 문장이 되며 처리결과도 같다.
또한, 참조자의 수에는 제한이 없으며, 참조자를 대상으로도 참조자를 선언할 수 있따.
가령,
int num1 = 2759;
int &num2 = num1;
int &num3 = num1;
int &num4 = num1;
이라고하면
2759가 저장된 하나의 메모리공간에 num1~num4까지 총 4개의 이름이 붙은것이다.
또한
int num1 = 2759;
int &num2 = num1;
int &num3 = num2;
int &num4 = num3;
와 같이 참조자를 대상으로 참조자를 선언하는것도 가능하며 결과도 위와 같다.
하지만, 필요 이상으로 참조자를 선언하는 것은 바람직하지 않으며, 참조자를 대상을 또 다른 참조를
만드는 일은 흔히 필요하지는 않다.
참조자(reference)와 함수1 (0) | 2020.10.05 |
---|---|
참조자의 선언 가능 범위 (0) | 2020.10.05 |
이름공간의 별칭 지정과 전역변수의 접근 (0) | 2020.10.04 |
이름공간의 중첩과 using선언 (0) | 2020.10.04 |
이름공간 기반의 함수 선언과 정의의 분리 (0) | 2020.10.04 |