**pは、ポインタのポインタという意味です。

通常のポインタ(*p)は、アドレスをもっていて、その参照先の値を表示します。

ポインタのポインタは参照先の参照をして、その値を表示します。

例えば以下のようなプログラムを考えてみましょう。
char str[] = “Hello”
char *p;
char **pp;

p = str;
pp = &p;

上記のプログラムを実行した場合は主記憶装置は以下のようになります。

番地 値
100 str:H
200 e
300 l
400 l
500 o

1000 p:100
2000 pp:1000

ppがもっているのはpが格納されている番地です。pがもっているのはstrが格納されている番地です。

**ppとした場合は、pの参照先を指すので100番地の値(str)を指します。
*ppとすると、ppの参照先を指すので1000番地の値(p)の100番地を指します。