a[3][3]={1,2,3,4,5,6,7,8,9} 这个数组你可以这样看a[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
这个二维数组可以拆分为四个一维数组a[3] = {b1, b2, b3}; 和b1[3] = {1, 2, 3}; b2][3] = {4, 5, 6}; b3[3] = {7, 8, 9};
*(*(a+i)+j) :
*(a+i)就相当于在一维数组a中找第i个数组元素; *(a+0) == b1 , *(a+1) == b2, *(a+2) == b3
*(*(a+0)+j) == *(b1+j) , *(*(a+1)+j) == *(b2+j), *(*(a+2)+j) == *(b3+j)
*(b1+j) 又相当于在b1这个一维数组中找出下标为j的数组元素*(b1+0) == 1 , *(b1+1) == 2, *(b1+2) == 3
其他两个*(b2+j) , *(b3+j)类推。
所以*(*(a+i)+j) 就可以找出二维数组下标分别为i和j的数组元素了。
你上边代码应该是遍历二维数组,按顺序输出二维数组的每个元素吧。
你的这个方法挺好的,用指针来输出二维数组的元素,一般人都直接用数组a[i][j]的形式。。:P:P |