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

C ++で参照によるポインタを渡すのはなぜですか?


ポインターが指しているオブジェクトではなくポインターを変更する必要がある場合は、参照によってポインターを渡します。

参照によってポインタを渡す方法の例を次に示します-

#include <iostream>
using namespace std;
void Decrement( int*& d ) {
   --d;
}
int main( void ) {
   int a = 26;
   int* ptr = &a; // pointer to pass
   // print before decrement
   cout<<"Before: "<< ptr << endl;
   Decrement( ptr);
   // print after increment
   cout<<"After: " << ptr;
   return 0;
}

出力

Before: 0x6ffe3c
After: 0x6ffe38

  1. C ++のポインター変数と参照変数の違いは何ですか?

    参照 変数が参照として宣言されると、それは既存の変数の代替名になります。 構文 Type &newname = existing name; 初期化 Type &pointer; pointer = variable name; ポインタ ポインタは、変数のアドレスを格納するために使用されます。 構文 Type *pointer;」と入力します 初期化 Type *pointer; pointer = variable name; 参照とポインタの主な違いは- 参照は別の名前の既存の変数を参照するために使用されますが、ポインターは変数のアドレスを格納するために使

  2. なぜC++で制限修飾子を使用するのですか?

    C++にはそのようなキーワードはありません。 C ++キーワードのリストは、C++言語標準のセクション2.11/1にあります。制限は、C言語のC99バージョンのキーワードであり、C++ではありません。 Cでは、制限修飾ポインター(または参照)は基本的に、ポインターのスコープについて、ポインターのターゲットはそのポインター(およびそこからコピーされたポインター)を介してのみアクセスされるというコンパイラーへの約束です。 C ++コンパイラも最適化の目的でこの定義をサポートしていますが、公用語仕様の一部ではありません。