int *A[10];
[ ] has higher precedence than *, hence A is an array of 10 items which are pointers to int.
A[2][3] = *( A[2]+3) = *(*(A+2)+3)
Suppose array A contains the starting address of others 1-D arrays.
A[0]=1000
A[1]=2000
A[2]=3000
A[3]=4000
and so on...
Base address of array A is suppose 100 an pointer needs 2 bytes.
then *(A+2) means *(100+2*2) = *(104) = 3000
derefrence it further
*( 3000 + 3) = *(3000 + 3*2) = *(3006)
conclusion, A[2][3] will give 4 th element of 3rd array.