C++ 指向指針的指針(多級(jí)間接尋址)
指向指針的指針是一種多級(jí)間接尋址的形式,或者說是一個(gè)指針鏈。通常,一個(gè)指針包含一個(gè)變量的地址。當(dāng)我們定義一個(gè)指向指針的指針時(shí),第一個(gè)指針包含了第二個(gè)指針的地址,第二個(gè)指針指向包含實(shí)際值的位置。

一個(gè)指向指針的指針變量必須如下聲明,即在變量名前放置兩個(gè)星號(hào)。例如,下面聲明了一個(gè)指向 int 類型指針的指針:
int **var;
當(dāng)一個(gè)目標(biāo)值被一個(gè)指針間接指向到另一個(gè)指針時(shí),訪問這個(gè)值需要使用兩個(gè)星號(hào)運(yùn)算符,如下面實(shí)例所示:
#include <iostream> using namespace std; int main () { int var; int *ptr; int **pptr; var = 3000; // 獲取 var 的地址 ptr = &var; // 使用運(yùn)算符 & 獲取 ptr 的地址 pptr = &ptr; // 使用 pptr 獲取值 cout << "Value of var :" << var << endl; cout << "Value available at *ptr :" << *ptr << endl; cout << "Value available at **pptr :" << **pptr << endl; return 0; }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Value of var = 3000 Value available at *ptr = 3000 Value available at **pptr = 3000
更多建議: