红联Linux门户
Linux帮助

关于二维数组作函数参数传递

发布时间:2011-07-22 09:48:08来源:红联作者:不够阳光
关于二维数组作函数参数传递,当函数原型声明为一个指向整形的指针时,传递给函数的实参该怎么来写,
比如我声明一个函数[code] int test (int *string) /*声明的参数类型以给出: 指向整形的指针*/
{
........;
}

int main(void)
{
int str[][3];
test ( ? );
}[/code]比如我要将str二维数组作为一个整形指针传递给test函数,我"?"里面该怎么来写

还有一种情况就是在主函数里边声明一个指针指向二维数组,然后把这个指向数组的指针作为实参传递给函数,那么声明函数的形参该怎么来写,传递时候的实参该怎么来写?

eg:[code] int test ( ? ) /*
**声明函数的参数又该怎么来写,看书看的云里雾里,这里的参数是不是
**要和调用时所传递的参数对应?
*/
{
.......;
}

int main(void)
{
int str[][3];
int (*p)[3]=str; /*我不知道我这个指向数组的指针写的对不对*/

/*然后就是把这个指针作为参数传递给函数*/

test( ? ); /*是直接写p呢,还是p[3],还是其它什么呢?*/
}

[/code]
文章评论

共有 4 条评论

  1. zyy_hz 于 2013-06-04 12:32:03发表:

    #include

    void PriNum(int (*p)[3]);

    int main(int argc, char **argv)
    {
    int t[2][3] = {{1,2,3},{4,5}};
    int (*p)[3] = &(t[0]);
    PriNum(p);
    return 0;
    }

    void PriNum(int (*p)[3])
    {
    int i = 0;
    int j = 0;

    for(i=0; i<2; i++)
    {
    for(j=0; j<3; j++)
    printf("%d\n", p[i][j]);
    }
    }
    这是我自己写的一个,你看下!如果有什么错误,请跟我说。

  2. 于 2013-05-28 17:31:26发表:

    顶一个。

  3. hml1006 于 2011-07-26 18:46:59发表:

    拜托,c语言有强制转换 (int*)str

  4. 不够阳光 于 2011-07-22 13:46:53发表:

    苍天啊!你们是来学习的吗,,,,,,,,,,,,,,,,,,,一个回复的都没有,,,,,,,,,,,,,,,,,

    what fucking .......................................