指针输出二维数组技巧解析
千万不要觉得二维数组中 * 也表示取值,两次 * 才表示取值,而在二维数组中第一个*就是固定用法,详见代码的解析以及实例;
#include <stdio.h>
#include <stdlib.h>
//一维数组中 :a[1] 与 *a(+1)
//二维数组中 :&a[1][1] 与 *(a+1)+1 等价,这里的*是固定用法,第二次*才表示取值;(见代码)
int main()
{
int _array[2][3] = {1,2,3,4,5,6};
printf("0行首地址和0行0列元素地址: %d , %d\n",_array, *_array); //这里的*_array表示的就是第一个元素的地址(因为是二维数组)
printf("0行首地址和0行0列元素地址: %d, %d\n",&_array[0], *(_array+0)+0);
printf("1行0列的元素地址: %d, %d\n",_array[1],*(_array+1));
printf("0行1列的元素地址: %d, %d\n",&_array[0][1],*(_array+0)+1);
printf("1行1列的元素值: %d, %d\n",_array[1][1],*(*(_array+1)+1));
return 0;
}
——————————编程路上,你我为伴——————————