奇怪的循环与size_t



我不使用 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,因此永远不会进入循环。

相关内容

  • 没有找到相关文章

最新更新