double rainPerMonth(const int YEARS)
{
int monthYear[MONTHS][YEARS];
// ...
}
Visual Studio 在数组声明下方显示一条波浪线,表明在我创建数组时 YEARS
必须是常量。这是一个 IDE 问题,因为变量尚未初始化,还是我写错了?
MONTHS
已在全局声明。
最佳答案
数组大小必须是常量表达式——即编译时已知的值。 (一些编译器提供 C 风格的可变长度数组作为非标准扩展,但我不认为 Visual C++ 提供。即使提供,最好不要依赖此类扩展。)
函数参数在编译时是未知的,因此不能用作数组大小。你最好的选择可能是这里
std::vector<std::array<int, MONTHS>> monthYear(YEARS);
关于c++ - 二维数组中的预期常数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21486696/