C++;增量/减量运算符在单个输出语句中使用时表现不同 所以我有两个C++代码:

C++;增量/减量运算符在单个输出语句中使用时表现不同 所以我有两个C++代码:,c++,console-application,C++,Console Application,第一个: 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";

第一个:

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
第二个输出:

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
正如您所注意到的,如果I
cout
值使用一行,则输出不同于I
cout
值使用多行的输出

谁能解释一下发生了什么事


谢谢。

当您在一行中执行时

--b;
首先计算值,然后在(b和--b)中打印

当您在新行中执行cout时:

--b; 

最后计算值。

您有较旧版本的编译器。这是@JeJo说的。非常感谢@JeJo。我真的很感谢你的时间和努力。在一个表达式中多次计算同一个值的问题在我上面的朋友已经发布的“可能重复”中有描述。请一定要读一读。