I've read many discussions on the difference between references and pointers and when to use which. They all seem to get their conclusions from analysis of the behaviors of the two.
But I'd still like to know what was in the language designers' mind. What's the main motive for this design? In what typical situation is it intended to be used? Perhaps the answer is already included in the discussions I mentioned, but I want to know which are authentic.
P.S. Does reference have a history as long as pointer in C++? Was it originated from the very beginning or came up as a patch for some situations? Thanks a lot.