As far as the difference between a pointer and a
reference...dude, when it comes down to it, aren't
they really just the same thing? Semantically, yes,
they're different. Under the hood?
This is one of my pet peeves, so excuse me if I come across somewhat strong.
A reference is not a pointer. Conceptually, there are many similarities, but the basic use of a pointer (at least in C and assembly) is that the pointer itself can be manipulated. As far as I know, you can't manipulate references without Deep Magic. Discussions of pointer concepts are worth very little to non-C/ASM newbies learning references, and can confuse C/ASM people even more. There is nothing to be gained by bringing pointers into a discussion of references.
Now of course, I realize you weren't trying to bring pointers into a reference discussion, you just used a similar term because you're familiar with it, so I'm not attacking you for that. (I'm attacking you for saying "aren't they really the same thing" :) )