Skip to content

references in {C++}


질의응답#

C++에서 참조자(reference)란 무엇일까요? 포인터에 비교했을 때 어떤 특징을 가지고 있나요?

어떤 변수를 다른 이름으로, 다른 스코프에서도 사용할 수 있게 만들어주는 특징을 가지고 있습니다. 포인터와는 다르게 값이 아니기 때문에 레퍼런스 변수의 주소값을 알 수 없으며, 또한 참조 대상을 교체할 수도 없습니다.

[!question] 함수의 인자로 int & 변수를 넘겨줬다고 해봅시다. 컴파일러는 이것을 어떻게 처리할까요?

[!question] const T &T &의 차이점에 대해서 설명해 주세요

레퍼런스 배열의 특징에 대해서 설명해 주세요.

레퍼런스 배열은 언어 차원에서 막아버렸습니다. 레퍼런스는 값이 아니기 때문에 메모리 상에서 존재하지 않을 수도 있기 때문입니다.

[!question] 어라? 레퍼런스 '변수'가 메모리 공간을 차지하지 않는 경우는 언제인가요?

동일한 스코프에서 선언된 변수를 참조할 땐 컴파일 과정에서 참조자가 생략되고 본래 변수를 직접 가리키게 됩니다.

  • [ ] 컴파일 된 바이너리 결과를 확인할 필요가 있다.

[!question] 레퍼런스가 메모리 상에서 반드시 존재해야 하는 경우는 어떤 상황이 있나요?