Lvalue 참조 선언자: &
개체의 주소를 보유하지만 구문상 개체처럼 동작합니다.
구문
lvalue-reference-type-id
:
type-specifier-seq
&
attribute-specifier-seq
optptr-abstract-declarator
opt
설명
lvalue 참조를 개체의 또 다른 이름으로 간주할 수 있습니다. lvalue 참조 선언은 참조 선언자가 뒤에 나오는 선택적 지정자 목록으로 구성됩니다. 참조는 초기화되어야 하고 변경될 수 없습니다.
주소가 지정된 포인터 형식으로 변환될 수 있는 개체는 유사한 참조 형식으로도 변환될 수 있습니다. 예를 들어 주소가 char *
형식으로 변환될 수 있는 개체는 char &
형식으로도 변환될 수 있습니다.
참조 선언을 address-of 연산자를 사용하는 데 혼동하지 마세요. &
식별자 앞에 형식(예: int
또는 char
)이 있으면 식별자가 형식에 대한 참조로 선언됩니다. 식별자 앞에 형식이 없으면 &
주소 연산자의 사용법이 사용됩니다.
예시
다음 예제에서는 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;
}
Bill is 40
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기