int *p;
int array[5];
p = array;
The specification says that the name of an array is a pointer to the first element, so when you assign that name to a variable you are setting the variable to point to the first element of the array: is the equivalent of saying:
int *p;
int array[5];
p = &(array[0]);