0

我不使用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;
}
4

1 回答 1

7

size_t通常是一个无符号值。在你的 for 循环条件中,你说的是i > -1. 由于i是无符号类型,-1 被转换为这种类型,并且将具有该类型的最大值。

由于促销活动,您有效地将 11(的初始值i)与最大值进行比较size_t,结果为假,因此永远不会进入循环。

于 2014-01-15T10:47:49.243 回答