Странный цикл с 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;
}

1 ответ

Решение

size_t обычно это значение без знака. В вашем состоянии для цикла вы говорите i > -1, поскольку i тип без знака, -1 преобразуется в этот тип и будет иметь максимальное значение для этого типа.

Благодаря продвижению вы эффективно сравниваете 11 (начальное значение i) с максимальным значением для size_t и результат ложен, таким образом, цикл никогда не вводится.

Другие вопросы по тегам