学习笔记--二维数组
二维数组int a[2][5]和一维数组int b[10]其实没有任何本质差别。
1、二维数组a和一维数组b在内存使用效率、访问效率上是完全一样的(或者说差异是忽略不计的)。
2、二维数组的下标式访问和指针式访问
(1)一维数组的两种访问方式。以int b[10]为例, int *p = b;。
b[0] 等同于 *(p+0); b[9] 等同于 *(p+9); b[i] 等同于 *(p+i)
(2)二维数组的两种访问方式:以int a[2][5]为例,(合适类型的)p = a;
a[0][0]等同于*(*(p+0)+0); a[i][j]等同于 *(*(p+i)+j)
3、a[i][j]等同于 *(*(p+i)+j)
(1)p不解引用 ,对p的加减是在第一维里偏移地址
(2)p解一次引用,对*p加减是在第二维里偏移地址
(3)p解二次组长,才能访问到值,如*(*p)