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

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*数组就是这样.

Car*_*rum 6

你只是错过了复合文字的类型.将该行更改为:

printElement1((char *[]){"Zero", "One", "Two", "Three"});
Run Code Online (Sandbox Code Playgroud)

它会工作正常.