포인터 변수에 주소값을 입력하기 위해서 &(ampersand)를 사용한 것과 마찬가지로 변수형으로 정의하여 사용할 수 있다.
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int number = 100;
// 참조변수 선언 및 초기화
// ※ 반드시 변수를 정의할때 초기화해주어야 한다.
int& referenceVariable = number;
// 참조이기 때문에 같은 메모리를 사용하므로 하나를 변경하면 모두 변경된다고 봐야한다
referenceVariable = 200;
cout << "number :: " << number << "\n";
cout << "reference :: " << referenceVariable << "\n";
if (referenceVariable == number)
{
// referenceVariable는 메모리 상에 존재하지 않지만 number와 동일하다
cout << "referenceVariable == number :: true \n";
}
const int& constVariable = number;
// [Error] : 상수형으로 선언하면 변경할 수 없다.
//constVariable = 100;
// 상수를 변경할 수 없지만 참고하는 값을 변경하면 constVariable도 변경된다.
number = 300;
cout << "number :: " << number << "\n";
cout << "reference :: " << constVariable << "\n";
return 0;
}
* 참조변수 선언시 반드시 초기화 하여야 한다.
* 참조변수는 메모리상에 존재하지는 않지만 같은 메모리를 사용한다.