多维数组与指针的理解

*(*(a+i)+j)==*(a[i]+j) 比较疑惑的是*(a+i)与a[i]为什么相等?

 

  首先错误的观点是你把a简单的理解为了一个指针变量,指向的是int *p;其实不是这么简单的,p在不同维数的数组中的含义是不同的,在一维数组中表示的指向int类型的指针,在二维数组中指的是指向一维数组的指针即指向指针的指针(与指向指针变量的指针不同,以为a[i]是固定值,不能改变的,常量),以为a[i]也是指针地址的基址,不过都是固定的值,在多维数组中,a指向的是(n-1)维数组指针的指针。这样理解*(a+i)与a[i]就是相等的了。

posted on 2013-10-31 17:49  阳光满天下  阅读(136)  评论(0)    收藏  举报

导航