a的类型是行指针,即a是 char (*)[4]的类型,
如果还看不懂
可以这样,声明一个char (*p)[4]=a;
这里p和a是同样的类型。
既然是行指针,a+1就是指向下一行了,所以每行4个int元素,int是4个字节,所以就是4×4=16的递增了。
搞清楚上面说的 就很容易明白了。
另外日常很多人都说a是个二级指针,其实是不对的,因为char **p=a编译器会警告
char *p=a也是警告的。
char (*p)[4]=a 是没有警告的!
关于char (*p)[4]的理解 可以参看相关书籍资料
[
本帖最后由 khaz 于 2011-8-20 20:57 编辑 ]