繁体   English   中英

传递2D数组以在C中起作用

[英]passing 2d array to function with in c

有没有办法将2D数组作为function(arr,m,n)传递给函数,将函数定义作为void function(int **p,int m,int n)传递给函数,即,没有显式指定数组大小?

让我们C对如何传递两个D数组作为参数有很好的解释。

我通常使用这两种方式将2D数组作为参数传递。 但是您需要明确指定大小。

void display1(int q[][4],int row,int col){
    int i,j;
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
            printf("%d",q[i][j]);
        printf("\n");
    }
}

void display2(int (*q)[4],int row,int col){
    int i,j;
    int *p;
    for(i=0;i<row;i++)
    {
        p=q+i;
        for(j=0;j<col;j++)
            printf("%d",*(p+j));
        printf("\n");
    }
}
int main()
{
   int a[3][4]={1,2,3,4,5,6,7,8,9,0,1,6};
   display1(a,3,4);
   display2(a,3,4);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM