Jim*_*may 1 c arrays pointers char
如何char*
在不创建数组并初始化数组的情况下将数组作为参数传递?
此代码有效(创建初始化代码):
char *messages[] = {"Zero", "One", "Two", "Three"};
printf("%s", messages[1]);
Run Code Online (Sandbox Code Playgroud)
但如果你这样传递它就不会起作用:
#include <stdio.h>
void printElement1(char *messages[]) {
printf("%s", messages[1]);
}
int main(void) {
printElement1({"Zero", "One", "Two", "Three"});
return 1;
}
Run Code Online (Sandbox Code Playgroud)
我不能使用a va_list
,该函数接受一个char*
数组就是这样.
你只是错过了复合文字的类型.将该行更改为:
printElement1((char *[]){"Zero", "One", "Two", "Three"});
Run Code Online (Sandbox Code Playgroud)
它会工作正常.