我有一个“预期常量表达式”错误。 这是我的错误部分:如何修改一个const int值C++
int row=counter/4;
int goals[row][4];---> this part has error for "row" variable
如何定义像一个恒定值,“行”的变量?或者如何解决这个问题?
我有一个“预期常量表达式”错误。 这是我的错误部分:如何修改一个const int值C++
int row=counter/4;
int goals[row][4];---> this part has error for "row" variable
如何定义像一个恒定值,“行”的变量?或者如何解决这个问题?
C++不允许可变大小的数组。在你的例子中,row
不是一个常数,因此不能用来指定数组的大小。
要解决此问题,您可以切换到C(允许使用这种数组),也可以使用C++构造 - 例如std::vector
。
Syntaxically正确的改变将改写行作为
const size_t row = counter/4;
但比你需要counter
常量,你将无法如果从用户输入得到它做的事。
你只能在数组声明中使用编译时间常量。
constexpr可以帮助你,
http://en.cppreference.com/w/cpp/language/constexpr
但不是所有的编译器,寻找这里的答案:
而且你怎么样规定的计? – mikedu95
请发表[mvce](http://stackoverflow.com/help/mcve)。 – skypjack
对不起,但没关系,计数器的值是从文件中获得的;像'FILE * fffile; \t fffile = fopen(“C:\\ goals.txt”,“r”); \t int i = 0; \t int j = 0; \t int counter = 0; \t int c = 0; \t而{//dosyanınsonuna游客gitme \t \t的fscanf(fffile, “%d”,&c); \t \t计数器++(FEOF(fffile)!);” – ozz