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?

On 9/22/06, Byron Clark <[EMAIL PROTECTED]> wrote:

Russel Caldwell wrote:
> When I do cout << &foo[0], I get "Hello". Why is that?

Because cout always interprets a char * as a directive to print the NULL
terminated string that the argument points to.

If you want to see the address of foo (which is also the address of the
first element of foo) you'll want to use printf("%p", foo).

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


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

Reply via email to