我正在尝试在二维数组中打印所有值。我来自Java,我在C中解决这个问题。如何在C中的两个给定索引处访问该值?
void PrintArrayByPointer(int *ptrToArray)
{
int i,j;
printf("\nPrint Array By Pointers: \n");
for(i=0; i<ROWS; i++)
{
for(j=0; j<COLS; j++)
{
// print the value here
}
printf("\n");
}
return;
}
答案 0 :(得分:3)
printf("%d ", ptrToArray[i*COLS + j]);
我假设您的数组以行主顺序存储,这在C和C ++中非常典型。
答案 1 :(得分:1)
这是将声明更改为下一个声明的更好方法:
void PrintArrayByPointer(int **ptrToArray)
你可以像这样访问数组:
printf("Value[%d][%d]=%d", i, j, ptrToArray[i][j]);
在你的情况下,你应该像这样计算元素在数组中的位置:
printf("Value[%d][%d]=%d", i, j, ptrToArray[i*COLS+j]);