+ 4
anyone pls explain this type of declaration "int (*ptr)[5];"
5 Answers
+ 7
as swim said it is a pointer to an array of 5 integers so one array of 5 integers is just one element 
when I say ptr+1  in this case it will return an address that is after ptr by 5 integers not one 
that is the difference
+ 3
Sai Ram 
it is not an array of pointers to integers why?
in this case sizeof(ptr) equals to sizeof(any pointer) 
and sizeof(array of pointers) equals to sizeof(pointer)*n 
where n is the number of elements in the array 
so this is a single pointer to array not an array of pointers
+ 1
its a pointer array.
the difference between array and a pointer array is
->Normal Array stores variable values .
->Pointer array stores address of the variables.
+ 1
the precedence of bracket is first and associativity is left to right.
so read the 1st bracket - (*ptr) which means it is a pointer
then resolve 2nd bracket - [5] which means an array but you have got a pointer which means it is pointing to that array
and finally int denotes the datatype of values stored in the array
so ptr is a pointer to an array of 5 intergers






