Can anyone explain to me why I got these ?'s wrong.

given the following 2-dimensional array declaration and inialization:

int a[][4] = {{1,2,3,4}. {5,6,7,8}}

whats the value of the expression *a(a[1]+2)?

i said it was 3 because another way to write it is *(a[1]+2)

which it would add 2 to the first element maiking the answer 3, right.

Q2given the following declarations,

char A[] = "abc", *p="def";

whats the effect of the following statement?

*A =P[2]

i answered it copies the letter 'f' to the first position of A. I said this because *p points to the 2 element which 8A point to the A[] replacing the 2 element with f.

Last ?

given 2 dinensional array declaration:

int A[2][5];

what is the type A[1]?

i said int**. because a fiend tryed to explain to me that each dimension has its own pointer. Which the way he expalined it made alot of sense.

can anyone explain to me please why i got these wrong and whats the correct answers please?