I find that I learn best through real-world comparison metaphors. For example, in java, one way that helped me understand the concept of Accessors and Mutators really well was thinking of it through the concept of a middle man (the private variables don't like to deal with their clients directly, they prefer to have a middle man(the accessors and mutators) handle them)
The concept of pointers in C is still kinda tricky for me. What would be a good metaphor to use to describe how they work?