728x90
포인터랑 비슷할 수 있지만 다름. 더 쉬움
1.참조자의 이해
변수(할당된 메모리 공간)에 둘 이상의 이름을 부여하고 싶을 때 씀.
int num1 = 2010;
int &num2 = num1;
=> 2010이란 값을 가진 num1이란 아이는 num2이라는 또다른 이름(별칭)을 갖게 됨.
num2는 num1의 참조자가 된다.
&연산자가 변수의 주소 값을 반환하는 연산자이기 때문에 헷갈릴 수 있지만 새로 선언되는 변수 이름 앞에 등장하면 참조자의 선언 의미!
그렇다고 참조자가 변수는 아님.
둘은 같은 값을 갖고, 같은 주소값 갖는 것 볼 수 있음.
2.참조자의 수에는 제한이 없으며, 참조자를 대상으로도 참조자를 선언 가능.
int num1 = 2759;
int &num2 = num1;
int &num3 = num1;
int &num4 = num1;
//num1, num2, num3, num4라는 이름 or 별칭을 가진 2749라는 값을 가진 변수가 됨
int num1 = 2759;
int &num2 = num1;
int &num3 = num2;
int &num4 = num3;
//참조자를 대상으로 참조자 선언 가능
but 필요 이상으로 참조자를 선언하는 것은 바람직하지 X
3.참조자의 선언 가능 범위
1. int &ref = 20; (X) => 변수에 대한 선언만 가능. 상수를 대상으로 참조자 선언 불가.
2. int &ref; (X) => 미리 참조자를 선언했다가 후에 누군가 참조하는 것 불가.
3. int &ref = NULL; (X) => 참조자를 선언하면서 NULL로 초기화하는 것도 불가능.
포인터변수도 변수이므로 참조자 선언 가능.
728x90
'LANG > C++' 카테고리의 다른 글
[C++]02-5.malloc & free를 대신하는 new &delete (0) | 2023.05.11 |
---|---|
[C++]02-4.참조자(Reference)와 함수 (0) | 2023.05.11 |
[C++]02-2.새로운 자료형 bool (0) | 2023.05.11 |
[C++]02-1.Chapter 02의 시작에 앞서 (0) | 2023.05.11 |
[C++] 01-5.이름공간(namespace)에 대한 소개 (2) | 2023.05.11 |