Possible Duplicate:
Difference between pointer variable and reference variable in C++
I am reading about the book "Inside the C++ Object Model" by Stanley Lippman. What puzzles me is the difference between a "reference" of an object and a "pointer" to an object. I know that a reference must be initialized when declared, while a pointer could be left for later initialization. But I want to know the physical implementation difference between them.
Why should there be the "reference" mechanism; isn’t it overlapping the function of a pointer? Under what circumstance should we use reference other than pointer? Many thanks.
10:48 AM 11/20/2021
Reference is from the semantic perspective.
Pointer is from the implementation perspective.
It’s kind of like the relation between what and how.
Most references are implemented using a pointer variable i.e. a reference usually takes up one word of memory. However, a reference that is used purely locally can – and often is – eliminated by the optimizer. For example:
In this case, p needs not be stored in memory (maybe it just exists in a register, maybe it disappears into the instructions).