当我想传递“char (*c)[10];
”作为参数时,
我应该在函数定义中定义什么参数?
我的意思是,如果我有一个功能:
void foo(*****) { ... }
我想将char (*c)[10];
传递给它,那么我应该用什么来代替*****
?
答案 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);
}