C语言编程-指针遍历二维数组,C语言 使用指针遍历二维数组

二维数组在内存中存储是线性连续的,可以计算出二维数组的偏移量,进而使用一级指针遍历二维数组

/**

使用1级指针访问二维数组

因为数组本身在地址空间中就是连续排列的,根据行数和列数,

计算出访问单元的 地址偏移量 就可以用一级指针遍历二维数组中的所有数据。

*/

#include

int main()

{

int array[2][3] ={ {1,2,3},{4,5,6}};

int *pArray = NULL;

pArray = array;

printf("array[0][0] = %d\n", *pArray);

printf("array[1][2] = %d\n", *(pArray + 1 * 3 + 2));//访问1行2列的二维数组

printMatirx(array,2,3);//打印2行3列的数组

return 0;

}

void printMatirx(int *pArray,int rows,int cols)

{

int i;

int j;

for(i=0;i

{

for(j=0;j< cols;j++)

{

printf("%d\t",*(pArray+i*cols+j));//访问i行j列的二维数组元素

}

printf("\n");

}

}结果:

array[0][0] = 1

array[1][2] = 6

1 2 3

你可能感兴趣的:(C语言编程-指针遍历二维数组,C语言 使用指针遍历二维数组)