关于二维数组的指针
假设有二维数组int a[2][3]
那么a、*a、a[0]、&a[0]、&a[0][0]的内容是一样的,都是首单元的地址。特别要明白的是,虽然a和 *a都指向首单元的地址,但寻址方式不一样,a是一个指向数组的指针,a+1的跨度是3个int单元;而 *a是一个指向int的指针,*a+1的跨度是1个int单元。
a是一个指向数组的指针(要和普通的指向指针的指针相区别)。在使用的时候,仅仅需要掌握它是指针变量,指向某个起始位置就可以了,至于具体的寻址方式,编译器会以另外的方式处理。 *a是第一个下层数组,但这个数组我们是不能直接使用的,编译器接到 *a指令后只能返回这个下层数组的入口,即指向下层数组的指针a[0]。