'Alias', as Shabbir says, is the perfect word. A reference is simply another name for an existing object. Consequently, you cannot write "int &ptr;" because you have not said what 'ptr' is another name for. You must write "int &newName = a;". A pointer, on the other hand, is like a name in your address book; it contains information about where something lives. It is not the something, just information about its location.