Lvalue 참조 선언자: &

개체의 주소를 보유하지만 구문상 개체처럼 동작합니다.

구문

lvalue-reference-type-id:
type-specifier-seq&attribute-specifier-seqoptptr-abstract-declaratoropt

설명

lvalue 참조를 개체의 또 다른 이름으로 간주할 수 있습니다. lvalue 참조 선언은 참조 선언자가 뒤에 나오는 선택적 지정자 목록으로 구성됩니다. 참조는 초기화되어야 하고 변경될 수 없습니다.

주소가 지정된 포인터 형식으로 변환될 수 있는 개체는 유사한 참조 형식으로도 변환될 수 있습니다. 예를 들어 주소가 char * 형식으로 변환될 수 있는 개체는 char & 형식으로도 변환될 수 있습니다.

참조 선언을 address-of 연산자를 사용하는 데 혼동하지 마세요. &식별자 앞에 형식(예: int 또는 char)이 있으면 식별자가 형식에 대한 참조로 선언됩니다. 식별자 앞에 형식이 없으면 &주소 연산자의 사용법이 사용됩니다.

예시

다음 예제에서는 Person 개체 및 해당 개체에 대한 참조를 선언하여 참조 선언자를 보여 줍니다. rFriendmyFriend에 대한 참조이기 때문에 변수 중 하나를 업데이트하면 동일한 개체가 변경됩니다.

// reference_declarator.cpp
// compile with: /EHsc
// Demonstrates the reference declarator.
#include <iostream>
using namespace std;

struct Person
{
    char* Name;
    short Age;
};

int main()
{
   // Declare a Person object.
   Person myFriend;

   // Declare a reference to the Person object.
   Person& rFriend = myFriend;

   // Set the fields of the Person object.
   // Updating either variable changes the same object.
   myFriend.Name = "Bill";
   rFriend.Age = 40;

   // Print the fields of the Person object to the console.
   cout << rFriend.Name << " is " << myFriend.Age << endl;
}
Bill is 40

참고 항목

참조
참조 형식 함수 인수
참조 형식 함수가 반환됩니다.
포인터에 대한 참조