1.ポインタと参照

まず、なぜポインタを使用

  ①ポインタを効果的にデータ構造を示すことができます。

  ②は、動的メモリ、メモリ管理の自由度を割り当てることができます。

  ③簡単に文字列を使用することができます。

  ④直接格納されたアドレスデータに関連するポインタ。たとえば、次の引数の値は、関数の計算に割り当てられたパラメータに置き換え、アドレス値を開始通過するのでアドレス転送の値は、より良好な透過効率です。直接撮影したデータは、効率を使用し、アドレスに直接ポインタアドレスパラメータ引数を置きます。(ここで、パラメータの変更は、引数の値に影響を与えます)

 

第二に、参照ポインタとの間の差

1. Aポインタが可変である、即ちポインタはエンティティである、メモリ記憶装置を指し、メモリアドレスに格納されています。

 そして、参照は変数のことを引用しただけで、2はメモリ内の同じメモリユニットを占有し、元の変数の単なる別名、。

2. ポインタ値は、実行の時点で変更することができ、及びオブジェクトとの結合後に一度の参照は変更されません手段:ポインタが別のオブジェクトを指すように再割り当てすることができ、常に指定されたオブジェクトは、後で変更することはできませんされて初期化時に参照されるが、コンテンツを指すを変更することができます。(ここでは、このルールを理解することです)。

3. メモリ割り当て:プログラムの割り当ては、メモリ領域を割り当てるを参照することなく、可変領域をポインタ。すでに存在するオブジェクトを指しているので、生活に言及する時に初期化されなければならないので、参照がnullにすることはできません

4. コンパイル:コンパイル時に、それぞれ、シンボルテーブルへの参照ポインタを追加するプログラム、シンボルテーブルは変数名とアドレスに対応する変数に記録されています。アドレスポインタ変数値、オブジェクトを参照するシンボルテーブルのアドレス値に対応する基準アドレス値のアドレス値に対応するシンボルテーブルのポインタ変数。こうしてオブジェクトを指すことができるポインタを変更する、変更されないシンボルテーブルを生成した後(ポインタ変数の値を変更することができる)、及び参照オブジェクトを変更することはできません。これは、ポインタを使用して行われ、主な理由の危険な使用は、安全性を挙げています。ポインタを変更することができないような意味において、参照は、考えることができます。
5. シリーズ:理論的には、ポインタのためのステージの数は限定されるものではなく、参照のみ。参照は一度だけ引用し、リングポインタが同じマップに記憶されたマップと同様に、入れ子にすることができます。
  int型** P1; //法的。ポインタへのポインタ
  int型*&P2; //法的。参照ポインタ
  int型&* P3; //違法。参照へのポインタは違法である
  int型&& P4; //違法。引用した参考文献は、違法向けられ
6. 効率性:実際には、両方の効率は、底部層と、同じであり、参照パラメータポインタが同じアドレスを指します。高レベルプログラミング言語で、*質量参加するので、空のアドレスまたは間違ったアドレスを指すので、随時パラメータを小さく効率が得られ、空であるか否かを判断することができます。しかし、で&-parameters、パラメータが空または間違ったアドレスことができない、これは、あまりにも、いくつかは少し効率を高めます。

おすすめ

転載: www.cnblogs.com/qmillet/p/12109896.html