0 c++ for-loop size-t type-promotion
我没有进入循环使用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;
}
Run Code Online (Sandbox Code Playgroud)
size_t通常是无符号值.在你的for循环条件中,你说的是i > -1.由于i是无符号类型,-1将转换为此类型,并具有该类型的最大值.
由于促销,你有效地将11(初始值i)与最大值进行比较size_t,结果为假,因此永远不会输入循环.