Pointers
Hrvoje Niksic
hniksic at iskon.hr
Fri Mar 24 09:40:12 EST 2000
"David Robinow" <drobinow at dayton.adroit.com> writes:
> Curtis Jensen <cjensen at be-research.ucsd.edu> wrote in message
> news:38DA9F8C.E9133C71 at be-research.ucsd.edu...
> > Python does work on a reference setup, but it's not exactly like
> > pointers. For example:
> > >>> a = 5
> > >>> b = a
> > >>> a = 3
> > >>> print b
> > 5
> >
> > If b were a pointer to b then print b would return 3, not 5. There is
> > the problem of mutable types and immutable types here, but the same
> > thing occurs if you use a mutable type. So, pointers and python
> > referances are not the same.
>
> It's not clear how you get the above conclusion
By assuming that `=' modifies the objects pointed to by a and b
destructively.
I understand this confusion; I had similar problems when I started to
learn Lisp -- the difference between a SETQ and a destructive
modification to a cons deluded me for some time.
The crux of the matter is: a and b are not objects that point to
numbers; they are variables that refer (point) to numbers, which are
objects. The operation `=' makes the variable point to a different
number object, as your C program demonstrates.
More information about the Python-list
mailing list