在单个输出语句中使用C ++增减运算符时,其行为会有所不同

时间:2018-08-28 10:09:06

标签: c++ console-application

所以我有两个C ++代码:

第一个:

int main()
{
    int a=10, b=8;

    b=a;
    ++a;
    b++;

    cout<<a<<"\n"<<b<<"\n"<<--b<<"\n";

    return 0;
}

第二个:

int main()
{
    int a=10, b=8;

    b=a;
    ++a;
    b++;

    cout<<a<<"\n";
    cout<<b<<"\n";
    cout<<--b<<"\n";

    return 0;
}

它们各自的输出是:

第一个输出:

11
10
10

第二个输出:

11
11
10

您会注意到,如果我使用单行cout值,则输出与如果我使用多行cout值会不同。

任何人都可以解释发生了什么事吗?

谢谢。

1 个答案:

答案 0 :(得分:-2)

一行执行时

--b;
首先评估

值,然后将其打印在(b和--b)中。

,然后在换行中执行cout时:

--b; 

最后评估值。