C语言中,多维数组的指针是一个难点,不太好理解,我用了一天的时候,参考了很多书,再加上自己的体会,总结如下:
在C语言中,二维数组在内存中的存储方式和一维数组一样的,你就把a[i][j]看成是有i个元素的一维数组,其中每个元素又有j个元素,就好理解了。拿二维数组指针来说吧,*(*(a+i)+j),就是a[i][j],a是第0行第0列个元素的地址,加i就是第i行第一个元素的地址,你先把每一行看成一维数组的一个元素,那么*(a+i)就是a[i],现在是二维数组,那么a[i]表示的就是第i行第一个元素的地址,再加上j,就是第i行第j列的地址,加上*不就是a[i][j]了嘛!!!
真是应了那句话:世上无难事,只怕有心人。也应了我自己的一个座右铭:
我并不比别人差,别人能够做到的,我通过努力也一定能够做到。
兴奋中特来此总结,继续学习中……
兴奋中特来此总结,继续学习中……
![](https://i-blog.csdnimg.cn/blog_migrate/2f60c0bc47d4178ac5e2b807936153ff.gif)