I made my life easier when I just removed all the fluff and started treating pointer as any other variable rather than some magical entity (long long ago in grade 11).. just know 3 things:
- Pointer is a variable that store the address of another variable (or just any address).
- * is used to get the value at the memory location that is stored in the pointer variable.
- & operator gives the address of a memory location.
The rest is syntactic sugar and common sense.. Just write some simple C programs (like implementing a linked list library) using pointers to get a hang of it.