C++ リファレンス


参照変数はエイリアス、つまり、既存の変数の別の名前です。変数への参照を初期化すると、参照名または変数名を使用して変数を指すことができます。

C++ 参照とポインター

参照はポインターと混同されやすいですが、それらの間には 3 つの主な違いがあります:

  • null 参照はありません。参照は正当なメモリ部分に接続されている必要があります。

  • 参照がオブジェクトに初期化されると、別のオブジェクトを指すことはできません。ポインタはいつでも別のオブジェクトを指すことができます。

  • 参照は作成時に初期化する必要があります。ポインタはいつでも初期化できます。

C++ での参照の作成

変数名がメモリ位置の変数に付けられるラベルであると想像してください。参照は、メモリ位置の変数に付けられる 2 番目のラベルであると考えることができます。したがって、元の変数名または参照を通じて変数の内容にアクセスできます。例:

int i = 17;

次のように i の参照変数を宣言できます:

int&    r = i;

これらの宣言では、& は reference として読み取られます。したがって、最初の宣言は「r は i に初期化された整数参照」と解釈でき、2 番目の宣言は「s は d に初期化された二重参照」と解釈できます。次の例では、int 参照と double 参照を使用しています。

#include <iostream>
 
using namespace std;
 
int main ()
{
   // 声明简单的变量
   int    i;
   double d;
 
   // 声明引用变量
   int&    r = i;
   double& s = d;
   
   i = 5;
   cout << "Value of i : " << i << endl;
   cout << "Value of i reference : " << r  << endl;
 
   d = 11.7;
   cout << "Value of d : " << d << endl;
   cout << "Value of d reference : " << s  << endl;
   
   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます。

Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7

参照は、通常、関数のパラメーター リストと関数の戻り値に使用されます。以下に、C++ プログラマが知っておく必要がある C++ 参照に関連する 2 つの重要な概念を示します。

概念 説明
パラメータとしての参照 C++ は、関数にパラメータとして参照を渡すことをサポートしています。一般的なパラメータ。
戻り値としての参照参照は、他のデータ型と同様に C++ 関数から返すことができます。