참조자는 변수의 또다른 이름(별칭)을 붙여주는 거라고 보면 된다.
참조자를 통해 변수에 접근 할 수 있다.
int num1;
라는 변수가 있을때 num1의 참조자는 int &ref = num1;
이라 선언하면 된다.
int main()
{
int num1 = 5;
int &ref = num1;
ref = 10;
cout << num1<<" "<< ref;
//둘 다 10으로 출력됨
선언과 동시에 무조건 초기화 해야된다.
참조자와 변수의 주소값은 같다.
여러개의 참조자를 선언할수 있고 참조자의 참조자도 선언할 수 있다.
참조자를 선언할 수 있는건 변수만 가능하다.
따라서 가능한 건
1. 변수 (int a)
2. 배열요소 ( arr[i])
3. 포인터 변수 (int *ptr)
4. 이중 포인터 변수(int **dptr)
불가능 한건
1. 상수 int &ref = 30;
2. int &ref;
3. int &ref = NULL;
4. 상수화된 변수(const int a)