c++ question
Byron Clark
byron at theclarkfamily.name
Fri Sep 22 19:42:13 MDT 2006
Russel Caldwell wrote:
> Sorry about this but this conversation has uncovered an apparent
> misunderstanding on my part about arrays. When I do the following:
>
> int foo[5] = {1, 2, 3}
>
> cout << &foo; //I get an address
> cout << foo; //I get the same address
> cout << &foo[0]; //I get the same address
> cout << foo[0]; //I get the value stored in the first slot
>
> What this seems to be telling me is that the address of foo[0] is stored at
> the same address as the value of foo[0]. What am I missing?
Your understanding of pointers and how they work is just fine. What's
missing is how cout (specifically ostream::operator<<) is handling them.
In most cases 'cout << pointer' will print the pointer address. The
exception is when pointer is a 'char *' or 'wchar_t *' in any of its
forms. In those cases, ostream::operator<< is overloaded to place the
NULL terminated string on the output stream instead of the address
pointed to by the pointer.
--
Byron Clark
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : http://plug.org/pipermail/plug/attachments/20060922/baec702c/signature.pgp
More information about the PLUG
mailing list