confusingly, the *dereference operator* returns a reference to the pointed-to object (the naming comes from C, which doesn't have references).
well, *technically*, it results in an lvalue, not a reference.