我能在 C++ 中做这个吗(如果可以,语法是什么)?
void func(string* strs) {
// do something
}
func({"abc", "cde"});
我想将一个数组传递给函数,而不需要将其实例化为一个变量。
我能在 C++ 中做这个吗(如果可以,语法是什么)?
void func(string* strs) {
// do something
}
func({"abc", "cde"});
我想将一个数组传递给函数,而不需要将其实例化为一个变量。
按照C++03的定义,无法完成此操作。
您需要的功能称为“复合字面量”。它在C语言中存在,是由C99定义的(当然具有C特定的功能),但在C++中不存在。
类似的功能也计划添加到C++中,但目前还没有实现。
我认为在C++98中你无法做到这一点,但是在C++1x中你可以使用初始化列表。
std::vector
,那么如何在数组中实现相同的功能呢? - Albert按照目前的写法,你无法这样做。该函数期望一个指向字符串的指针。即使你能够将数组作为字面量传递,函数调用也会生成错误,因为字面量被认为是常量(因此,字面量数组的类型将是const string*
,而不是函数所期望的string*
)。