int& ref = number;
위와 같은 방식으로 선언, 참조자는 반드시 정의시 초기화가 되어야한다
int& ref;
위와 같이 참조자 변수만 선언하는 것은 불가능하다.
참조자는 일종의 별명과 같은 역할을 하므로 어떤 변수에 대한 별명인지, 즉 어떤 변수를 참조하고 있다는 것이 정의되지 않으면 아무런 의미도 없기 때문이다. 참조자는 한번 선언되면 다른 변수를 참조하게 변경할 수 도 없다. 참조자는 그 변수 자체의 다른 이름으로 생각하면 편할 것이다.
int a = 10;
int &ref = a;
int b = 3;
ref = b;
int function(vector<int>& v){}
벡터는 함수의 파라미터로 넘겨질 때 참조자 변수로 넘어가는데, 이는 함수 내에서 벡터의 값을 변경하는 것이 원래 벡터의 값도 변경하길 원하는 경우이다. 배열의 경우 배열을 파라미터로 넘겨주면, 배열의 포인터 값이 넘어가게 되어 자동으로 위의 기능이 이루어지지만 벡터는 지역변수로 복사되기 때문에 함수 안에서 값을 변경하더라도 함수 밖에서는 값이 변하지 않는다. 이 때문에 값을 변경하기 위한 목적으로 참조자로 넘겨주는 것이다.