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

How do I print the value at given index in two dimensional array of pointers?

本文关键字:打印 索引 数组 指针 二维      更新时间:2023-10-16

我正在尝试打印二维数组中的所有值。我来自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;
}
printf("%d ", ptrToArray[i*COLS + j]);

在这里,我假设您的数组是按行主顺序存储的,这在C和C++中非常典型。

将声明更改为下一个声明是更好的方法:

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