То, что вы имеете в условии цикла while, это оператор запятой , который оценивает его операнды и возвращает значение его самого правого операнда.
В вашем случае он оценивает i < 4
условие и отбрасывает его, а затем оценивает условие до 5. Таким образом, оно по существу эквивалентно:
while(5)
{
printf("Loop ");
i++;
}
, что, очевидно, приводит к бесконечному циклу, поскольку условие всегда выполняется.(помните, что любое ненулевое значение всегда «истинно» в C).Также возможно целочисленное переполнение из-за увеличения i
в бесконечном цикле.