다음을 통해 공유


Lvalue 참조 선언자: &

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

type-id & cast-expression

설명

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

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

참조 선언을 주소 연산자 사용과 혼동하지 마십시오. & identifier 앞에 int, char 등의 형식이 있는 경우 identifier는 해당 형식에 대한 참조로 선언됩니다. & identifier 앞에 형식이 없는 경우에는 주소 연산자와 용도가 같습니다.

예제

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

// 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;
}
  

참고 항목

참조

참조 (C++)

참조 형식 함수 인수

참조 형식 함수 반환

포인터에 대한 참조