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

C ++のポインタと参照パラメータの違いは何ですか?


ポインタ

ポインタ変数は、変数のアドレスを格納するために使用されます。

構文

Type *pointer;
」と入力します

初期化

Type *pointer;
Pointer=variable name;

参照

パラメータが参照として宣言されると、既存のパラメータの代替名になります。

構文

Type &newname=existing name;

初期化

Type &pointer;
Pointer=variable name;

ポインタと参照パラメータの主な違いは-

です。
  • 参照は別の名前の既存の変数を参照するために使用されますが、ポインターは変数のアドレスを格納するために使用されます。

  • 参照にnull値を割り当てることはできませんが、ポインターに割り当てることはできます。

  • 参照変数は値渡しで参照できますが、ポインターは参照渡しで参照できます。

  • 参照は宣言時に初期化する必要がありますが、ポインタの場合は必要ありません。

  • 参照は元の変数と同じメモリアドレスを共有しますが、スタック上でいくらかのスペースを占有しますが、ポインタはスタック上で独自のメモリアドレスとサイズを持ちます。


  1. C++の++iとi++の違いは何ですか?

    ++のサフィックスバージョンとプレフィックスバージョンには大きな違いがあります。 プレフィックスバージョン(つまり、++ i)では、iの値がインクリメントされ、式の値はiの新しい値になります。したがって、基本的には、最初にインクリメントしてから、式に値を割り当てます。 postfixバージョン(つまり、i ++)では、iの値はインクリメントされますが、式の値はiの元の値です。したがって、基本的には、最初に式に値を割り当ててから、変数をインクリメントします。 例 理解を深めるために、いくつかのコードを見てみましょう- #include<iostream> using name

  2. C ++のドット(。)演算子と->の違いは何ですか?

    ドットと矢印の演算子は、どちらもC++でクラスのメンバーにアクセスするために使用されます。それらはさまざまなシナリオで使用されます。 C ++では、class、struct、またはunionとして宣言された型は、「クラス型」と見なされます。したがって、以下は3つすべてを指します。 a.bは、bがオブジェクトのメンバー(またはオブジェクトへの参照[1])である場合にのみ使用されます。したがって、a.bの場合、aは常にクラスの実際のオブジェクト(またはオブジェクトへの参照)になります。 a→bは基本的に(* a).bの省略表記です。つまり、aがオブジェクトへのポインタである場合、a→bはポイ