如何将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*
数组,就是这样。
答案 0 :(得分:6)
您只是缺少复合文字的类型。将该行更改为:
printElement1((char *[]){"Zero", "One", "Two", "Three"});
它会正常工作。