[oclug] References vs Pointers
Stephen M. Webb
stephenw at xandros.com
Thu Jul 3 10:29:10 EDT 2008
On 03/07/08 09:58, Jon Earle wrote:
> So, the reference, as received by a function, looks and acts like a
> parameter that was passed by value, but actually refers, or points to, the
> original value? In which case, I would need to treat it as if it were not
> a pointer but a local parameter and apply the address-of operator to get
> the original memory location?
Yes, you need to treat it like the rvalue it is. There is no guarantee a
reference parameter is implemented as a pointer: it's quite possible (in
fact in the example case more than likely) that it's just a register and the
value gets copied in before the function call and copied out after the
> (Lions in PEI... new movie idea, perhaps? Lazy coder's sloppy code
> unleashes some horrible chain of events upon an unsuspecting population?)
According to the C++ standard, if you invoke undefined behaviour, anything can
happen. Anything. A C++ programmer must avoid any missteps for this reason.
Your next typo could open a rift in the space-time continuum and set upon the
world some dark unspeakable lurking horror. Those kinds of problems can be
difficult to debug.
More information about the OCLUG