The important part of understanding this is to understand how pointers work.
Let's imagine that we declare a pointer with the ABC content:
const char * c="ABC";
Then "ABC" is somewhere in memory and the pointer is also in memory. If we want to create a pointer to c, it is also possible with the code:
const char **cp = &c;
In this case the cp pointer is also allocated in memory and is pointing to where pointer c is.
For example, if we look at a piece of memory:
Endereço
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30
-----------------------------------------------
A | B | C | | 21 | | 25 | | |
Conteúdo
cp está no endereço 27 e aponta para o endereço 25.
c está no endereço 25 e aponta para o endereço 21.
no endereço 21, temos a string ABC.