它给了我这个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/

10-11 01:09