将char指针数组作为参数传递

时间:2013-08-26 20:50:29

标签: c arrays pointers char

如何将char*数组作为参数传递,而不创建一个并初始化它?

此代码有效(创建初始化代码):

char *messages[] = {"Zero", "One", "Two", "Three"};
printf("%s", messages[1]);

但如果你这样传递它就不会起作用:

#include <stdio.h>

void printElement1(char *messages[]) {
    printf("%s", messages[1]);
}

int main(void) {

    printElement1({"Zero", "One", "Two", "Three"});

    return 1;
}

我无法使用va_list,该函数会使用char*数组,就是这样。

1 个答案:

答案 0 :(得分:6)

您只是缺少复合文字的类型。将该行更改为:

printElement1((char *[]){"Zero", "One", "Two", "Three"});

它会正常工作。