将2D数组传递给函数** vs [] [N]

时间:2018-03-17 00:08:25

标签: c arrays

尝试了以下内容:

#define N 3
void print(int **arr, int m)
{
    int i, j;
    for (i = 0; i < m; i++)
        for (j = 0; j < N; j++)
            printf("%d ", arr[i][j]);
}

int main()
{
    int arr[][3] = { { 1, 2, 3 },{ 4, 5, 6 },{ 7, 8, 9 } };
    print(arr, 3);
    return 0;
}

它崩溃了。当我用void print(int [] [N],int m)替换它时它起作用了。 couldent了解差异。我确信**表示指针指针,换句话说指针数组,换句话说是数组数组。 同样,数组被视为指向第一个单元格的指针。

0 个答案:

没有答案