C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での参照


参照変数はエイリアス、つまり既存の変数の別名です。参照が変数で初期化されると、変数名または参照名のいずれかを使用して変数を参照できます。

参照とポインタ

参照はポインタと混同されることがよくありますが、参照とポインタの3つの大きな違いは-

  • NULL参照を持つことはできません。参照が正当なストレージに接続されていると常に想定できる必要があります。

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

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

C++での参照の作成

変数名は、メモリ内の変数の場所に付けられたラベルと考えてください。次に、参照をそのメモリ位置に付けられた2番目のラベルと考えることができます。したがって、元の変数名または参照のいずれかを介して変数の内容にアクセスできます。たとえば、次の例があるとします-

int i = 17;

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

int& r = i;

これらの宣言の&を参照してください。したがって、最初の宣言を「rはiに初期化された整数参照」として読み取り、2番目の宣言を「sはdに初期化された二重参照」として読み取ります。

サンプルコード

#include <iostream>
using namespace std;

int main () {
   // declare simple variables
   int i;
   double d;

   // declare reference variables
   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

  1. PHPリファレンス

    はじめに PHPでは、参照 異なる名前で同じ変数コンテンツにアクセスできるようにします。それらを使用して算術演算を実行することはできないため、C /C++のポインターとは異なります。 C / C ++では、これらは実際のメモリアドレスです。対照的に、PHPでは、これらはシンボルテーブルエイリアスです。 PHPでは、変数名と変数コンテンツが異なるため、同じコンテンツに異なる名前を付けることができます。参照変数は、接頭辞&によって作成されます 元の変数に署名します。したがって、 $ b =&$ a $bが$aの参照変数であることを意味します。 参照による割り当て 次の例では、2つの変数が同じ

  2. Pythonで変数への参照を割り当てることはできますか?

    Pythonの変数の概念はC/C++とは異なります。 C / C ++では、変数はメモリ内の名前付きの場所です。ある値が別の値に割り当てられている場合でも、別の場所にコピーが作成されます。 int x=5; int y=x; たとえば、C ++では、&演算子は宣言された変数のアドレスを返します。 cout<x<<&x<<y<<&y; これにより、xとyの両方に同じ値が含まれていても、異なるアドレスが出力されます。アドレスを参照変数に格納することで、エイリアスを作成できます int x=5; int &y=x; y=10; c