참조자는 변수의 대한 별칭이다.
int &num2=num1; // num1은 이제 num2로 불릴수 있게 된다
int *ptr=&num1; // num1의 주소값을 반환해서 포인터 ptr 에 저장해라
int &num2=num1; //변수 num1에 대한 참조자 num2를 선언해라
{
int num1 = 1020;
int &num2 = num1;
num2=3047;
cout << "VAL: " << num1 << endl;
cout << "REF: " << num1 << endl;
cout << "VAL: " << &num1 << endl;
cout << "REF: " << &num1 << endl;
}
RESULT
/**
*VAL: 3047
*REF: 3047
*VAL: 0012FF60
*VAL: 0012FF60
*/
변수와 참조자는 선언의 방식에 있어서 확실한 차이를 보인다. 참조자는 변수를 대상으로 선언이 가능하다.
int num1=2759;
int &num2=num1;
int &num3=num1;
int &num4=num1;
하지만, 필요 이상으로 참조자를 선언하는 것은 바람직하지 않으며, 참조자를 대상으로 또 다른 참조자를 만드는 일이 흔히 필요하지는 않다.
int arr[3] = {1,3,5};
int &ref1=arr[0];
int &ref2=arr[1];
int &ref3=arr[2];
int num=12;
int *ptr=#
int **dptr=&ptr;
int &ref=num;
int *(&pref)=ptr;
int **(&dpref)=dptr;
cout<<ref<<endl;
cout<<*pref<<endl;
cout<<**dpref<<endl;
return 0;