如何在二维指针数组中打印给定索引处的值?

时间:2014-04-20 02:59:19

标签: c++ c

我正在尝试在二维数组中打印所有值。我来自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;
}

2 个答案:

答案 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]);