Share via


左辺値参照宣言子: &

オブジェクトのアドレスを保持しますが、オブジェクトのように構文的に実行されます。

type-id & cast-expression

解説

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++)

参照型関数の引数

参照型関数の戻り値

ポインターへの参照