В программе для печати hello
:Почему для (1; 2; 3) бесконечный цикл?
for (1; 2; 3)
printf ("Hello");
Почему выход показать его бесконечный цикл? Разве только for (; ;)
бесконечный цикл?
В программе для печати hello
:Почему для (1; 2; 3) бесконечный цикл?
for (1; 2; 3)
printf ("Hello");
Почему выход показать его бесконечный цикл? Разве только for (; ;)
бесконечный цикл?
В C все ненулевые целые числа считаются истинными. Итак, здесь
for (1; 2; 3)
2 - отличное от нуля целое число, и поэтому он представляет собой бесконечный цикл. И да,
for (; ;)
также представляет собой бесконечный цикл.
for
остановится, как только второй оператор оценит значение 0. (В этом контексте пустой оператор считает ненулевым).
Ваш никогда не делает. for(1; 2; 3)
, for(; 2;)
, и for(;;)
не остановится.
Хм, вы правы. В C
для структуры
for (initialization; condition; increment/decrement)
Таким образом, в вашем коде, for (1; 2; 3)
здесь в состоянии части (то есть. Средний) является non-zero (ie. 2)
и, с всегда верно. Вот почему ваш код всегда получает true
и infinite loop
.
В соответствии с определением в infinite LoopFor Loop
:
Когда условное выражение отсутствует, то предполагается, чтобы быть правдой. У вас может быть выражение инициализации и инкремента, но программисты C чаще используют конструкцию for (;;) для обозначения бесконечного цикла .
Для лучшего понимания, вы можете следить за For Looop
@ user5268195 Если вам это нравится, вы должны принять этот ответ. Это также поможет вам. –
Поскольку любое число, отличное от нуля, считается 'true' для логических операций. Итак, второй операнд в цикле for - это не число '2', а всегда логическое выражение' true'. –
@ user5268195> Нет, вы не захотите, или вы не останетесь здесь долго. Поддержание качества SO - это бизнес каждого члена сообщества. –
Хотя это может быть не очень хороший или интересный вопрос, это правильный вопрос в отношении политик SO. Быть грубым, однако, не в порядке. – Lundin