C++ 指向指針的指針(多級間接尋址)

C++ 指針 C++ 指針

指向指針的指針是一種多級間接尋址的形式,或者說是一個指針鏈。通常,一個指針包含一個變數的地址。當我們定義一個指向指針的指針時,第一個指針包含了第二個指針的地址,第二個指針指向包含實際值的位置。

C++ 中指向指針的指針

一個指向指針的指針變數必須如下聲明,即在變數名前放置兩個星號。例如,下麵聲明了一個指向 int 類型指針的指針:

int **var;

當一個目標值被一個指針間接指向到另一個指針時,訪問這個值需要使用兩個星號運算符,如下面實例所示:

實例

#include <iostream> using namespace std; int main () { int var; int *ptr; int **pptr; var = 3000; // 獲取 var 的地址 ptr = &var; // 使用運算符 & 獲取 ptr 的地址 pptr = &ptr; // 使用 pptr 獲取值 cout << "var 值為 :" << var << endl; cout << "*ptr 值為:" << *ptr << endl; cout << "**pptr 值為:" << **pptr << endl; return 0; }

當上面的代碼被編譯和執行時,它會產生下列結果:

var 值為 :3000
*ptr 值為:3000
**pptr 值為:3000

C++ 指針 C++ 指針