Concretely, suppose that you define nptr
to be a pointer variable
that points to integers, and that you define number
to be an array
of integers:
int *nptr; int number[100];
Then, you can arrange for nptr
's value to be the address of
the first element in the array:
nptr = &number[0];
Once you have thus assigned a value to nptr, you can produce the address of other array elements by addition:
nptr + 0 /* Address of the first element */ nptr + 1 /* Address of the second element */ ... nptr + n - 1 /* Address of the nth element */
And once you know how to produce addresses, you know how to produce the elements themselves via the dereferencing operator:
*(nptr + 0) /* Identifies the first element */ *(nptr + 1) /* Identifies the second element */ ... *(nptr + n - 1) /* Identifies the nth element */