x
在以下 C++ 代码中,最后的值和值之间是否存在差异y
?
const int LoopLength = 100;
unsigned short x = 0;
for (int i = 0; i < LoopLength; i++)
{
x = ++x % 2;
cout << x;
}
cout << endl;
unsigned short y = 0;
for (int i = 0; i < LoopLength; i++)
{
++y = y % 2;
cout << y;
}
cout << endl << (x == y) << endl;
Coverity(静态分析工具)声称副作用发生的顺序是未定义的,如x = ++x % 2;
. 我不确定我是否应该担心。