Никакие!
for (;;); // это работает!
не помню, попробую угадать
[любая]; [любая, результат которой приводим к bool];[любая]
Каждая из них опциональна. Правильно?
Это если в терминах плюсов. Что там в последних стандартах Си с типом bool - не помню.
Гуглите или купите стандарт, он всего рублей 400 стоит
Сложение, сравнение, выполнение
FOR (x=0; x<10; x++) { команды }.
читается так: цикл (точка отсчёта это x и он равен нулю, пока x меньше 10, выполняем команды эти - { команды }. После этого x становится равным одному x=1 потому что x++ я не упомянул, а он работает. Это читается так, это упрощённо написали, оно тоже работать будет, а на самом деле это так x=x+1. Можно написать сокращённо ++x. Это будет означать уже другой вариант событий и будет читатся так
цикл (точка отсчёта это x и он равен единице (потому что сначала третья команда будет уже сработывать, а потом выполнение цикла, а не сначало выполнение потом x=x+1, а тут сначала x=x+1. Получается выглядит так x=1, пока x меньше 10, выполняем команды эти - { команды }.
выполнился, проверка идёт x ещё меньше 10 ?, если да выполняем цикл, нет, то стоп