错误:需要左值作为递增操作数

时间:2013-09-28 15:30:01

标签: c++

以下代码给出了此错误:

int main()
{
    int i = 4, j=10;
    int k, l;

    k = ++ (++ i);
    l = (j++) ++;

    cout << "k : " << k << endl;
    cout << "l : " << l << endl;

    return 0;
}

如果有人能解释为什么会发生错误,那将非常有帮助。

3 个答案:

答案 0 :(得分:5)

j++的结果是j的旧值,而不是对j的引用。您无法对其应用其他增量,因为您无法增加值。

答案 1 :(得分:2)

因为当你写X ++时,X必须是一个变量,X必须是你正在递增的东西。因此(j++) ++是错误,因为(j++)不是变量。只需改为编写j += 2

对于有经验的程序员来说,我知道这是一个大大简化。

答案 2 :(得分:2)

只写j + = 2.为什么你以错误的方式使用operator ++? 申请KISS。