The variable name represents its value, and you need '&' to explicitly get its address. In the other hand the name of the array already acts as a pointer to the first element of the array, like the name alone represents the memory address where the first element name[0] is stored.
So the '&' operator is needed for the int variable to get its address.