为什么输出不一样?

时间:2013-10-22 18:48:26

标签: c++

我通过编译器检查了两个:

这个输出是10

    int count = 0; 
    for(int i=0; i < 10; ++i){ 
            count=++count;
    }
    cout << count; 

我不明白为什么这个(++计数变为计数++)的输出为0

    int count = 0; 
    for(int i=0; i < 10; ++i){ 
            count=count++;
    }
    cout << count; 

1 个答案:

答案 0 :(得分:4)

        count=++count;

        count=count++;

当您在没有插入序列点的情况下修改count时,两个程序都会遇到未定义的行为。请注意,=运算符不会引入序列点。

对UB的强制性阅读; - )

<强> Undefined Behavior and Sequence Points in C++