a[0] 等价于 *(a+0)它指的是0行0列的元素地址
&a[0][0] 也是指0行0列的元素地址
p=&a[0][0] 它的意思的使指针p指向数组a的第0行第0列,而在后面执行p++的时候,就会使指针顺序后移,依次指向 a[0][1] a[0][2]……a[2][2] 的地址;
假如:p=a 这是使指针p指向数组a的首行,当你输出*p这个值的时候,它输出的值是a[0][0]这个元素的值,但是当你执行p+1的时候,那么p就会指向数组a的序号为1的行,即指向了a[1][0]这个元素所在的行了。p始终指向数组a的行,而不指向列。
虽然p=a[0] p=&a[0][0] p=a 这三个语句都是例p指向数组a的a[0][0]这个元素,但它们的意义是不一样的。另外p=a这个语句是合法的,不是不能用,而是在你想要使p指向数组a的首元素地址时,不建议你使用p=a这个语句,容易混淆。
初学者会搞不清这个指针是指向行还是指向列。
温馨提示:答案为网友推荐,仅供参考