@grumpy, I didn't get your explanation. I too, assumed it would work. I mean
Code:
int a[10] = {10,3,0,} ;
printf("%p %p", a, &a[0]) ; //This would both give me the address of a
printf("%p",&a) //This also would give me the address of a
printf("%d %d", *a, *&a[0]) //Would give me the number 10, rightfully
printf("%d", *&a)// doesn't work, however
Why does *&a not work? It still gives me the address of a.
&a is of type "pointer to array of ten int".
&a points to the first element in the array of ten ints, yeah?
So *&a is of type "array of 10 int". It represents the whole array (all ten elements of it.
I don't understand. What do you mean of type "array of 10 int"? So it is equivalent to saying :