我可以用C ++编写吗(如果是,语法是什么?):
void func(string* strs) {
// do something
}
func({"abc", "cde"});
我想将数组传递给函数,而不将其实例化为变量。谢谢你的建议。
答案 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)
使用可变参数函数将无限的无类型信息传递到函数中。然后使用传入的数据执行任何操作,例如将其填充到内部数组中。