ポインタと参照の違いは何ですか

目次:

Anonim

NS 主な違い ポインタと参照の間は ポインタは別の変数のアドレスを保持する変数であり、参照は既存の変数にアクセスするためのエイリアスです。

C ++は、C言語の拡張機能です。また、Cのスーパーセットと見なされます。これは強力な言語であり、プログラムを実装するための多くの機能を提供しながら、オペレーティングシステム、デバイスドライバーなどのさまざまなアプリケーションの構築に役立ちます。そのような機能の1つは、動的メモリ割り当てです。ポインタと参照は、動的メモリ割り当てに関連する2つの概念です。

ポインタ、リファレンス

ポインタとは

ポインタは、別の変数のアドレスを格納する変数です。つまり、メモリ位置の直接アドレスを格納します。プログラマは、メモリアドレスを格納するためにポインタを使用する前に、ポインタを宣言する必要があります。たとえば、int * ptr;と仮定します。 ptrは整数のアドレスを保持するポインタであると説明しています。 *マークは、変数をポインターとして指定します。

ポインタを使用するときに従うべきいくつかのステップがあります。まず、プログラマーはポインター変数を定義する必要があります。次に、変数のアドレスをポインターに割り当てる必要があります。最後に、プログラマーは値にアクセスできます。簡単な例は次のとおりです。

図1:ポインター付きのC ++プログラム

変数「x」は値50を保持します。ptrは整数へのポインタです。 9行目では、ptrに変数xのアドレスが割り当てられています。これで、ptrはxを指します。 ptrが指す値を出力すると、xの値は50になります。

リファレンスとは

参照は、既存の変数のエイリアスです。参照が変数で初期化された後、変数名または参照名を使用してその変数を参照することができます。通常、変数名は、その変数のメモリ位置を識別するのに役立つラベルです。参照は、そのメモリ位置に付けられた2番目のラベルと見なすことができます。したがって、プログラマーは、変数名または参照を使用して、変数の内容にアクセスできます。

int x = 50;

xの参照変数は次のとおりです。

int&r = x;

図2:参照付きのC ++プログラム

変数xは整数データ型を格納できますが、rはxに初期化された整数参照です。次に、xに値50が割り当てられます。10行目は元の変数名xを使用してxの値を出力し、11行目は参照rを使用してxの値を出力します。

ポインタと参照の違い

意味

ポインタはプログラミング言語オブジェクトであり、コンピュータのメモリにある別の値のメモリアドレスを格納しますが、参照は既存の変数のエイリアスまたは別の名前です。これがポインタと参照の主な違いです。

機能性

ポインタはメモリ位置のアドレスを保持し、参照はすでに存在する変数のエイリアスです。

オペレーター

ポインタの演算子は*で、参照の演算子は&です。

ヌル

nullポインターは存在できますが、null参照は存在できません。これは、ポインタと参照のもう1つの違いです。

初期化

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

変形

変更は、ポインターと参照のもう1つの違いです。ポインタはいつでも別のオブジェクトを指すことができます。ただし、オブジェクトへの参照を初期化した後、他のオブジェクトを参照するように変更することはできません。

結論

ポインタと参照は、C ++での動的メモリ割り当てに関連する2つの概念です。ポインタと参照の主な違いは、ポインタは別の変数のアドレスを保持する変数であり、参照は既存の変数にアクセスするためのエイリアスであるということです。

リファレンス:

1.「Cポインタ」。 Python文字列(例付き)、ここから入手できます。

ポインタと参照の違いは何ですか