I remember reading 'The C programming language' (in the train, I even remember that) and when pointers really 'clicked' in my mind - it was when I realized that (*struct).member is the same as struct->member (I don't remember the exact page but it was one of the paragraphs on pointer syntax quite early on). Weird detail now that I think back about it after programming C++ for over 20 years, but that was just one of those moments for me.