Message-Id: <3.0.16.19971125153723.22af8ce2@hem1.passagen.se> Date: Tue, 25 Nov 1997 15:37:34 -0500 To: DJ Delorie From: Peter Palotas Subject: Re: pointers &arrays[] Cc: djgpp AT delorie DOT com Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Precedence: bulk At 08.18 1997-11-25 -0500, you wrote: > >> >array == &array >> This is NOT true. `&array' is a pointer to array, i.e. a pointer to the >> pointer of the first element in the array. > >No, it is true. Even if they weren't the same, "&array" would be the >right one, since it's a pointer, and "array" isn't a pointer - it's >the whole array, like "int" is all 32-bits of an integer. Okay, apparently I was wrong about this, since I always learned that the array name was a pointer to the first element of the array. However, array != &array if you pass array to a function as I see it, so it doesn't seem right to use &array if you want a pointer to the first element in the array. #include char foo[10]; void func(char foo[]) { printf("foo = %p, &foo = %p\n", foo, &foo); } int main(void) { strcpy(foo, "987654321"); func(foo); return 0; } $ ./test.exe foo = 8c98, &foo = 4c490 -- Peter Palotas alias Blizzar -- blizzar AT hem1 DOT passagen DOT se -- ***************************************************** * A brief description of DJGPP: * * NEVER BEFORE HAS SO FEW DONE SO MUCH FOR SO MANY! * *****************************************************