函数中 C 中的多维 char 数组

Multidimensional char array in C in function

提问人:kkkkk 提问时间:12/28/2014 更新时间:12/28/2014 访问量:95

问:

如何在 C 中使用带有字符串数组的函数? 我的代码:

void test(char **a){
    printf("%s", a[0]);
}
int main(){
    char b[10][10];
    strcpy(b[0],"abc");
    strcpy(b[1],"dfgd");
    test(b);
    return 0;
}

如何使这个代码示例起作用?

c 功能 多维数组

评论

4赞 barak manos 12/28/2014
编译器不知道函数中尖阵的“真实”维度。我很惊讶它没有在线上发出警告.更改为 .testtest(b)char **achar a[][10]

答:

4赞 Ali Akber 12/28/2014 #1

您可以使用:

void test(char a[10][10]){
    printf("%s", a[0]);
}

void test(char a[][10]){
    printf("%s", a[0]);
}

void test(char (*a)[10]){
    printf("%s", a[0]);
}

int main(){
    char b[10][10];
    strcpy(b[0],"abc");
    strcpy(b[1],"dfgd");
    test(b);
    return 0;
}

这三个声明是完全等价的。虽然最后一个更好。

这个答案更好地解释了它