n - the name of an array gives the base address of the array.
*n - Look it like this (*(n+0)+0) which is nothing but the address of n[0][0] if it would have been **n, it would have printed the very first element.
&n - The array 'n' is itself stored at some place which is the same as from where the first element starts so &n and n print the same thing but it'll be better for you to check it by printing "n+1" and "&n+1", you will know what I mean and what's the differnce between "n" and "&n".
By the way dont use void main.