Array and pointer

we know that address->bucket but in case of arrays
a[i]=
(a+i) but here a+i is not an address so how can we use the de-refrence operator here?

in arrays, a[i] gives the value stored at some address, but simply “cout << a” gives the address of the first index of the array, a