Int A [3];
The address of a is the same as that of &.
A + 1 = a + 1 * sizeof (INT); Skip is the size of an array element
& A + 1 = a + 3 * sizeof (INT); the Skip value indicates the size of the entire array.
# Include <stdio. h> intmain () {char * A [] = {"hello", "the", "world"}; char ** Pa = A; PA ++; /* obtain the second element in the array */printf ("* pA = % s \ n", * pA); printf ("* (a + 1) = % s \ n ", * (a + 1); int B [] = {1, 2}; int * pb = B; /* Get the last element in the array */printf ("* (int *) (& B + 1)-1) = % d \ n ", * (int *) (& B + 1)-1); printf ("* (int *) (& B + 1)-1) = % d \ n ", * (int *) (& B + 1)-1); printf (" * (char **) (& A + 1)-1) = % s \ n ", * (char **) (& A + 1)-1 )); /* same address */printf ("B = 0x % 0x \ n", B); printf ("& B = 0x % 0x \ n", & B );} /* [[email protected] test_class] #. /. out * pA = the * (a + 1) = the * (int *) (& B + 1)-1) = 3 * (int *) (& B + 1)-1) = 1 * (char **) (& A + 1)-1) = worldb = 0xbfc556b0 & B = 0xbfc556b0 */
Difference between a + 1 and & amp; A + 1 in int A [3]; -- C