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:
Qt Code:
  1. OBJ o;
  2. OBJ *pointer = &o;
To copy to clipboard, switch view to plain text mode 

&o returns the address of o which must be stored inside the pointer.