【发布时间】:2020-06-29 19:54:20
【问题描述】:
for (unsigned i = 0; i < 3; i++) {
if (i == 2) i = -1;
}
我不明白为什么这个循环是无限的。我知道它会在i = -1 但 UINT_MAX 大于 3 时环绕。
【问题讨论】:
-
是的 -1 是 UINT_MAX 然后 i++ 发生所以 i 再次变为 0。
标签: c for-loop infinite-loop unsigned unsigned-integer