C 指向指針的指針
指向指針的指針是一種多級(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 <stdio.h> int main () { int var; int *ptr; int **pptr; var = 3000; /* 獲取 var 的地址 */ ptr = &var; /* 使用運(yùn)算符 & 獲取 ptr 的地址 */ pptr = &ptr; /* 使用 pptr 獲取值 */ printf("Value of var = %d\n", var ); printf("Value available at *ptr = %d\n", *ptr ); printf("Value available at **pptr = %d\n", **pptr); return 0; }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Value of var = 3000 Value available at *ptr = 3000 Value available at **pptr = 3000
更多建議: