Basically a reference and a pointer are pretty similar as they both point to a memory segment, the main difference, however, is that references must be initialised to reference a variable and therefore can only be NULL when forced to be null (pointers may not be initialised and be NULL instead).
Also, your first example is wrong, it must be:
&o returns the address of o which must be stored inside the pointer.
Bookmarks