If an array has to be returned to the main function from other function as a whole, the name of the array is returned.
For eq. you have an array a[10]={10,20,30}, you will return the entire array by using it's name i.e. "a"
"a" points to the base address of the first element a[0]
i.e
a=&a[0]
which makes "a" a pointer, and hence a pointer in the main function is made to receive "a", which points to the address of the first element of the array.
hope this helps:)