int (*a)[10]说明指针a是一个指向有10个int类型数组的指针, int(**a)[10]说明a是指向一个有10个int类型的数组的指针的指针, 可以看下下面的例子:
#include
void main()
{
int b[2][3] = {{1, 2, 3}, {4, 5, 6}};
int (*c)[3] = b;
int(**a)[3];
a = &c;
}
c指向了b, b[i]中的每个元素都是一个指向3个int类型的指针, 所以c++就指向了b[1],也就是元素4的地址。
a又指向了c, a++的指向就无从所知了...
int (*a)[10],a是指向数组的指针,a++指向数组的第二个元素。
int(**a)[10],a是指向指针数组的指针,a++指向指针数组的第二个元素(也是指向指针的指针)。