Who modified my local variable?

Michael L Torrie torriem at chem.byu.edu
Tue Jun 13 11:21:55 MDT 2006

On Tue, 2006-06-13 at 11:06 -0600, Shane Hathaway wrote:
> Interesting.  To me, the distinction between a pointer and a reference
> is that a reference not only points to the object referenced but also
> has some kind of strong link back to the thing that's referencing it.
> That strong link backward is what makes garbage collection possible.  In
> the C++ code "int foo(int &bar)", the variable bar is just a cleverly
> disguised pointer, not a reference in the usage I am accustomed to.

While this is one way of thinking about it, a far better way to think
about it (one that will get you in less trouble) is to say that the
variable passed by reference in C++ *is* the same variable.  In other
words, unlike python, java, etc, if you rebind the reference variable,
it rebinds the original variable.  They are the same.  So a reference
would be more like a pointer to a pointer plus syntactic sugar.

> I wonder which sense is standard?  Is the meaning of "reference"
> different depending on the language?  Ugh, I hope not, but I bet it is.

Time for me to go back and dig out my old cs 330 textbook and read up on
it.  But I think your right.


> Shane
> /*
> PLUG: http://plug.org, #utah on irc.freenode.net
> Unsubscribe: http://plug.org/mailman/options/plug
> Don't fear the penguin.
> */

More information about the PLUG mailing list