Q:

Question about pointer in C?

int a[A][B];
int* p = a[i];  //i<A-1

then what's the actual operation of the sentence below?
p++;
p+=B;

A:

p++ -> Go to next column in the matrix
p+=B -> Go to the next row (at the same column) in the matrix.

A:

For multidimensional arrays, one has to remember that the dimensions are applied from left to right, which makes it somewhat easier to visualise. for example:
int p[A][B][C];

This will be built as :
[][]--[][][][]--[][]_ _ _[][]--[][]   [][]--[][][][]--[][]_ _ _[][]--[][]
|---A----||---A----|     |---A----|---|---A----||---A----|     |---A----|
|---------------A*B---------------|   |---------------A*B---------------|
|---------------------------------A*B*C---------------------------------|

so if you have a p[i][j][k], i'ts actually (p+i+Bj+BCk)

