C++ 指向指標(多級間接定址)



指向指標的指標是一種多級間接定址或指標鏈。通常,指標包含變數的地址。當我們定義指向指標的指標時,第一個指標包含第二個指標的地址,第二個指標指向包含實際值的位置,如下所示。

C++ Pointer to Pointer

指向指標的指標變數必須宣告為這種型別。這是透過在其名稱前面新增一個額外的星號來完成的。例如,以下是宣告指向 int 型別指標的指標的宣告:

int **var;

當目標值由指向指標的指標間接指向時,訪問該值需要兩次應用星號運算子,如下面的示例所示:

#include <iostream>
 
using namespace std;
 
int main () {
   int  var;
   int  *ptr;
   int  **pptr;

   var = 3000;

   // take the address of var
   ptr = &var;

   // take the address of ptr using address of operator &
   pptr = &ptr;

   // take the value using pptr
   cout << "Value of var :" << var << endl;
   cout << "Value available at *ptr :" << *ptr << endl;
   cout << "Value available at **pptr :" << **pptr << endl;

   return 0;
}

編譯並執行上述程式碼後,將產生以下結果:

Value of var :3000
Value available at *ptr :3000
Value available at **pptr :3000
cpp_pointers.htm
廣告