C ポインタへのポインタ
ポインタへのポインタは、多段間接参照の一種、つまりポインタの連鎖です。通常、ポインタは変数のアドレスを保持します。ポインタへのポインタを定義するとき、最初のポインタは2番目のポインタのアドレスを保持し、2番目のポインタは実際の値を含む位置を指します。
ポインタへのポインタ変数は、変数名の前に2つのアスタリスクを置いて、次のように宣言する必要があります。例えば、次のコードは int 型へのポインタを指すポインタを宣言します:
int **var;
ある対象の値がポインタによって別のポインタに間接的に指されている場合、この値にアクセスするには2つのアスタリスク演算子を使用する必要があります。次の例のようになります:

例
#include <stdio.h>
int main ()
{
int V;
int *Pt1;
int **Pt2;
V = 100;
/*V のアドレスを取得*/
Pt1 = &V;
/*演算子 & を使用して Pt1 のアドレスを取得*/
Pt2 = &Pt1;
/*pptr を使用して値を取得*/
printf("var = %d\n", V );
printf("Pt1 = %p\n", Pt1 );
printf("*Pt1 = %d\n", *Pt1 );
printf("Pt2 = %p\n", Pt2 );
printf("**Pt2 = %d\n", **Pt2);
return 0;
}
上記のコードをコンパイルして実行すると、次の結果が得られます:
var = 100 Pt1 = 0x7ffee2d5e8d8 *Pt1 = 100 Pt2 = 0x7ffee2d5e8d0 **Pt2 = 100その他の拡張
C ポインタ