What is the difference between a pointer and a reference?
A reference is bound once and cannot be null or rebound; a pointer can be null, can be reassigned, and supports arithmetic. Use a reference when the object must exist, a pointer when it might not. Because a reference is an alias rather than an object, &ref gives you the address of the referent.