如何在没有变量实例化的情况下将数组传递给函数,在C ++中

时间:2010-05-04 16:36:07

标签: c++

我可以用C ++编写吗(如果是,语法是什么?):

void func(string* strs) {
    // do something
}
func({"abc", "cde"});

我想将数组传递给函数,而不将其实例化为变量。谢谢你的建议。

4 个答案:

答案 0 :(得分:10)

在C ++ 03中定义的当前C ++中无法完成。

您正在寻找的功能称为“复合文字”。它以C语言存在,由C99定义(当然具有C特定功能),但不是在C ++中。

C ++也计划使用类似的功能,但它还没有。

答案 1 :(得分:0)

我认为你不能在C ++ 98中做到这一点,但你可以在C ++ 1x中使用initializer_lists

答案 2 :(得分:0)

如上所述,你不能这样做。该函数需要一个指向字符串的指针。即使你能够将数组作为文字传递,函数调用也会产生错误,因为文字被认为是常量的(因此,文字数组的类型为const string*,而不是string*作为函数预计)。

答案 3 :(得分:0)

使用可变参数函数将无限的无类型信息传递到函数中。然后使用传入的数据执行任何操作,例如将其填充到内部数组中。

variadic function