我通过编译器检查了两个:
这个输出是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;
答案 0 :(得分:4)
用
count=++count;
和
count=count++;
当您在没有插入序列点的情况下修改count
时,两个程序都会遇到未定义的行为。请注意,=
运算符不会引入序列点。
对UB的强制性阅读; - )