有什么方法可以在函数调用中构造字符串数组?例如,说我有一个像这样的函数:

void foo( char * [] strings )
{
    //...does stuff
}


而不是先声明字符数组然后再传递它,有没有办法使用数组或任何其他容器类来像这样调用函数?

foo( { "a", "b", "c", ...} );


基本上,我有一个函数提示用户输入,直到它与我传递的数组中的字符串之一匹配为止,由于在整个程序中都发生了变化,因此我将接受的输入传递给提示用户并验证输入的函数。目前,我只是在函数外部构造它并传递它,但想知道是否可以将它们以任何方式组合为一行

最佳答案

这在C99中有效:

void fun(char *argv[])
{
    while(*argv)
        printf("%s\n", *argv++);
}

fun((char*[]){"aaa", "bbb", NULL});


由于您提到“容器”,因此您可能使用C++,所以此答案的价值有限(除非您使用的是接受它作为扩展名的编译器-例如GCC的方式)。

关于c++ - 是否可以在函数调用中构造和传递数组/其他容器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7789333/

10-14 10:04
查看更多