Lvalue 참조 선언 자: &
개체의 주소를 보유 하 고 있지만 개체 처럼 동작 하는 구문이 있습니다.
type-id & cast-expression
설명
참조는 lvalue가 개체의 다른 이름으로 생각할 수 있습니다.Lvalue 참조 선언 지정자 참조 선언 자에 의해 그 뒤 선택적 목록으로 구성 됩니다.에 대 한 참조를 초기화 해야 되며 변경할 수 없습니다.
모든 개체는 주소 지정 된 포인터 형식으로 변환할 수 있습니다 유사한 참조 형식으로도 변환할 수 있습니다.개체 형식으로 해당 주소를 변환할 수 있습니다 예를 들어, char * 형식으로 변환할 수 있습니다 char &.
사용을 있는 참조 선언을 혼동 하지 마십시오의 주소 연산자.경우는 & 식별자 형식에서 것과 같이 앞에 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;
}