If you fully understand pointers, understanding pointers-to-pointers should be no problem.
Pointers only hold an address to something else, think of it like man pointing to something. Consider the following, let man = pointer.
Code:
[man 0] -> [man 1] -> [man 2] -> [the man you want]
You want to remember where [the man you want] is,
* so you tell man 2 to remember where he is,
* you tell man 1 to remember where man 2 is
* you tell man 0 to remember where man 1 is
If you want to find [the man you want] you can either,
1. ask man 0 where man 1 is (see 2.)
2. ask man 1 where man 2 is (see 3.)
3. ask man 2 where [the man you want] is.
You can of course skip to 2 or 3 or even straight to the man.
I hope my corny example made it clear