为什么在布尔值的情况下,溢出不会以循环方式发生。例如,当你达到128并递增时,说a=126,如果范围是-127到128,则a变为-127。类似地,对于布尔值,它是0到1,所以它应该在0101010101周围移动,依此类推。请澄清
using namespace std;
int main()
{
bool a;
for (a = 1; a <= 5; a++)
cout << a;
return 0;
}
来自cppreference
如果预增量运算符的操作数类型为
bool
,则将其设置为true
如果后增量运算符的操作数类型为
bool
,则将其设置为true
请注意,这种行为在C++17中被删除,并且您的代码不会使用较新的标准编译(可能是因为它令人困惑(。