C参数定义问题

C参数定义问题,c,C,当我想传递一个“char(*c)[10];”作为参数时, 我应该在函数定义中定义什么参数 我的意思是,如果我有一个函数: void foo(*****) { ... } 我想传递char(*c)[10]到它,那么我应该写什么来代替******?这应该很好: void foo(char (*c)[10]); 您应该能够在声明时简单地传递它: void foo(char (*c)[10]); 并称之为: foo(c); 这是关于这个主题的最佳帖子:将函数定义为: void foo(char

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

我的意思是,如果我有一个函数:

void foo(*****) { ... }
我想传递
char(*c)[10]到它,那么我应该写什么来代替
******

这应该很好:

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

您应该能够在声明时简单地传递它:

void foo(char (*c)[10]);
并称之为:

foo(c);

这是关于这个主题的最佳帖子:

将函数定义为:

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

任何原因
void foo(char(*c)[10])
是作为
foo(c)
传递的可撤消的?typedef通常使函数指针更具可读性。