We already know that a pointer points to a location in memory and thus used to store the address of variables. So, when we define a pointer to pointer. The first pointer is used to store the address of the variable. And the second pointer is used to store the address of the first pointer. That is why they are also known as double pointers.
Double Pointer (Pointer to Pointer) in C:https://www.geeksforgeeks.org/double-pointer-pointer-pointer-c/