Указатель (например, int *) - это переменная, которая содержит адрес памяти, в которой находится значение (например, int).
& x обозначает адрес x в памяти, как и y * ниже.
int* y = &x;
Указатель указателя (например, int **) - это переменная, которая содержит адрес памятиуказатель (например, int *) адреса памяти. Используя приведенный выше пример, мы можем сказать, что & y обозначает указатель на указатель.
int** p = &y;