我希望能够在 C++ 中将数组声明为函数参数,如下面的示例代码所示(无法编译)。有没有办法做到这一点(除了事先单独声明数组)?
#include <stdio.h>
static void PrintArray(int arrayLen, const int * array)
{
for (int i=0; i<arrayLen; i++) printf("%i -> %i\n", i, array[i]);
}
int main(int, char **)
{
PrintArray(5, {5,6,7,8,9} ); // doesn't compile
return 0;
}
原文由 Jeremy Friesner 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用的是较旧的 C++ 变体(C++0x 之前的版本),则不允许这样做。您所指的“匿名数组”实际上是一个 _初始化列表_。现在 C++11 已经出来了,这可以通过内置的
initializer_list
类型来完成。 _如果您的编译器将它们解析为 C99 或更高版本_,理论上您也可以使用extern C
将其用作 C 样式的初始化列表。例如: