是否可以在函数调用中构造和传递数组/其他容器
Is constructing and passing an array/other container in function call possible?
是否有办法在函数调用中构造字符串数组?例如,假设我有这样一个函数:
void foo( char * [] strings )
{
//...does stuff
}
而不是声明字符数组,然后传递它,有任何方法,与数组或任何其他容器类,调用函数像这样吗?
foo( { "a", "b", "c", ...} );
基本上,我有一个函数,它提示用户输入,直到它与我传递的数组中的一个字符串匹配为止,由于在整个程序中这种情况会发生变化,因此我将接受的输入传递给提示用户并验证输入的函数。目前,我只是在函数外构建它并将其传递进去,但我想知道它们是否可以以任何方式组合成一行
这适用于C99:
void fun(char *argv[])
{
while(*argv)
printf("%sn", *argv++);
}
fun((char*[]){"aaa", "bbb", NULL});
既然你提到了"容器",你可能会使用C++
,所以这个答案的价值有限(除非你使用的编译器接受它作为扩展-例如GCC的方式)。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 还有其他方法可以在数组中写入多维数组吗?
- 为什么在某些编译器中可以声明像int myarr[noconstant]这样的数组;而不是在其他编译器中?
- 严格的别名是否会阻止您通过其他类型写入 char 数组?
- Sizeof返回的是指针大小,而不是数组大小.有其他方法可以找到尺寸吗
- 将十六进制字符数组存储在字节数组中,而无需更改为 ASCII 或其他任何东西
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 在 C++ 中使用递归填充 D2 数组,有时工作正常,其他时会引发异常
- 使用类的其他成员变量定义类的成员变量数组
- 对数组进行排序并匹配其他数组
- 对相同其他数组旁边的数组进行排序
- 对数组进行排序并匹配其他数组并得到错误
- 将 2D 数组设置为函数,并根据需要在其他地方调用它
- C++ 在构造函数中传递数组而不在其他地方定义它们
- 我如何在课堂中使用其他类别的数组
- 使用传入数组初始化其他数组
- 我无法将二维数组的两个元素的差异分配给C++中其他数组的元素?
- 未签名的char数组到stl ::映射或其他容器中的键
- 是否可以在函数调用中构造和传递数组/其他容器