它给了我这个for循环中第*(repetitions + x)++;
行的错误。有什么线索吗?
for (int y = 0; y<hours; y++)
{
if (*(array + x) == *(array + y))
{
*(repetitions + x)++;
}
}
最佳答案
您不能增加右值repetitions + x
。这与编写相同的错误:
int a = 3;
int b = 2;
(a+b)++; // ????
++
运算符需要一个左值,即变量的名称。 a+b
是一个临时结果,没有内存地址,无法递增。您可能打算写
(*(repetitions + x))++;
,可以将其更清楚地表示为repetitions[x]++;
关于c++ - 需要左值作为增量操作数(2),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22888977/