Thats why I love and hate C.
When you declare
int var[10];
a reference to var has type "pointer to int" (Link to C Faq Relevant's section)
and a reference to &var is a pointer to an array of 10 ints.
Your declaration
int (*ptr) [10] rightly creates a pointer to an array of 10 ints to which you assign &var (the address of a pointer to an array of 10 ints) (Link to C Faq Relevant's section)
With these things clear (hopefully),
"ptr" would then print the base address of the "pointer to the array of 10 ints"
"*ptr" would then print the "address of the first element" of "the array of 10 ints".
Both of them in this case are equal and thats why you see the same address.
and yes **ptr would give you 1.