按行顺序存放所有元素
二维数组与行
a代表二维数组的首地址,也是第0行的首地址;
a+i代表第i行(个)元素的地址,即&a[i];
a+i或&a[i]表示行地址,每次加1会移动一行;
*(a+i)即a[i]不代表具体元素,仍然是一个地址;
二维数组与列
对于二维数组,第i个元素仍然是一个一维数组,亦即a[i]或*(a+i)仍然是一个地址;
对于每个一维数组a[i]或*(a+i),a[i]+j或*(a+i)表示此一维数组a[i]中第j个元素的地址,即&a[i][j]
a(a[i]+j)或((a+i)+j)代表一位数组a[i]中第j个元素的值,即a[i][j]
a[i]或(a+i)表示列地址,每次加1会移动一个元素。
二维数组的理解
二维数元素的访问
总结
二维数组首地址是行地址,要用行指针指向,行指针加减1,就移动一行。行指针+i表示第i行的行地址,取*就转换为列地址,转为一维数组的处理。