LANG/C++

[C++]02-3.참조자(Reference)의 이해

혀니리리 2023. 5. 11. 21:19
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