我没有使用 size_t
进入循环。为什么?
如果我使用 int
我进入循环,输出是:11, 11
int main()
{
int j = 11;
for (size_t i = 11; i > - 1; --j, i -=12)
{
std::cout << i << ", " << j << std::endl;
}
return 0;
}
最佳答案
size_t
通常是无符号值。在您的 for 循环条件中,您说的是 i > -1
。由于 i
是无符号类型,-1 将转换为该类型,并将具有该类型的最大值。
由于促销,您有效地将 11(i
的初始值)与 size_t
的最大值进行比较,结果为 false,因此循环为从未进入。
关于c++ - 带有 size_t 的奇怪循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21135254/