참조

1 한국어의 단어

참고와 참조 문서 참고참조.

2 C++의 기능 중 하나

이 문단은 참조자(으)로 검색해도 들어올 수 있습니다.

다른 변수를 가리키는 변수로, 포인터와 유사한 기능을 한다.

2.1 사용법

예를 들어, int형 변수 var를 참조하는 참조자를 만들려면

int &ref=var;

라고 쓰면 된다.

값에 엑세스할 때는 * 표시가 필요 없이
그냥 변수처럼 쓸 수 있다.

ref=1; //var=1과 동일

함수의 매개변수에 사용하는 것도 가능하다.

template <typename T>
void swap(T &a,T &b)
{
T tmp=a;
a=b;
b=tmp;
}

다만 이 경우 주의할 점이 있다. 아래 '주의점' 문단을 참고.

참조자를 정의할 때는 반드시 초기화를 해줘야 하며, 중간에 참조의 대상을 바꿀 수 없다.

int &ref1; //X
int &ref2=var
&ref2=buf //X

물론 NULL로 초기화하는 것도 불가능하다.

int &ref=NULL; //X

2.2 주의할 점

다음의 코드를 보자.

int v=30
func(v);
printf("%d\n",v);

C에서는 100% 30이 출력되지만, C++에서는 얼마가 나올지 알 수 없다.

이처럼 참조자는 포인터에 비해 직관성이 매우 떨어지기 때문에 사용 시에 주의가 필요하다.