My standared pointer analogy:
If Mary has the answers to the homework, she's a normal variable.
If Mary's a pointer, then she doesn't have the answers. She has the address of the person with the answers. You can use Mary= to get the address. Or, you can use *Mary= to make her bring you the answer.
One use for pointers...
I would say that pointers are most often used when you want get around the fact that functions can only return one value. If you pass-in pointers to variables, then you can change the actual variables. For example, functions that affect character strings use pointers.