Answers

Question and Answer:

  Home  Arrays

⟩ Can you please explain the difference between array_name and &array_name?

One is a pointer to the first element in the array; the other is a pointer to the array as a whole.

An array is a type. It has a base type (what it's an array of ), a size (unless it's an "incomplete" array), and a value (the value of the whole array). You can get a pointer to this value:

char a[ MAX ]; /* array of MAX characters */

char *p; /* pointer to one character */

/* pa is declared below */

pa = & a;

p = a; /* = & a[ 0 ] */

After running that code fragment, you might find that p and pa would be printed as the same value; they both point to the same address. They point to different types of MAX characters.

The wrong answer is

char *( ap[ MAX ] );

which is the same as this:

char *ap[ MAX ];

This code reads, "ap is an array of MAX pointers to characters."

 172 views

More Questions for you: