说法有误,p并不是指向a[i][j]的指针,而是指向数组的指针,也就是说p=a。
如果p是一个指向a[i][j]的指针,那么p应该是char* 类型,且p=&a[i][j]。
*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]=p[i][j]=a[i][j] 这个式子里面的五个表达式都是一个意思。每一个式子的p和a都可以互换。
搞明白几个基本要素:
*(p+i)和p[i]是表示第i行的地址
*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]
表示第i行,第j列的元素的值。比较常用的就第一种方法吧。第三种写法比较少见。