1

如何将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;
}

我不能使用 a va_list,该函数需要一个char*数组,就是这样。

4

1 回答 1

6

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

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

它会正常工作。

于 2013-08-26T20:53:19.213 回答