C参数定义问题

时间:2011-05-26 04:06:59

标签: c

当我想传递“char (*c)[10];”作为参数时, 我应该在函数定义中定义什么参数?

我的意思是,如果我有一个功能:

void foo(*****) { ... }

我想将char (*c)[10];传递给它,那么我应该用什么来代替*****

3 个答案:

答案 0 :(得分:5)

这应该可以正常工作:

void foo(char (*c)[10]);

答案 1 :(得分:1)

你应该能够在宣布它时简单地传递它:

void foo(char (*c)[10]);

并将其命名为:

foo(c);

这是关于此主题的最佳帖子:C pointers : pointing to an array of fixed size

答案 2 :(得分:1)

将函数定义为:

void foo(char (*c)[10])
{
    for (int i = 0; i < sizeof(*c); i++)
        printf("%d: %c\n", i, (*c)[i]);
}

使用以下功能:

int main(void)
{
    char a[10] = "abcdefghi";
    char (*c)[10] = &a;
    foo(c);
    return(0);
}