A reference is another name for an object. To see how references are useful, and also how they're implemented, consider writing a function that has two return values to pass back. The value of the reference cannot change, but the value of the referenced object can, unless the reference is declared as const. A constant reference that points at a value like 47 can be implemented using a temporary.
References are useful in argument passing and return.
Another use is illustrated below in the section on writing robust code.