Стандарт C прямо заявляет, что деление на ноль имеет неопределенное поведение для целочисленных операндов или операндов с плавающей запятой.
C11 6.5.5 параграф 5:
Результат/
оператор - это частное от деления первого операнда на второй;результат оператора %
- остаток.В обеих операциях, если значение второго операнда равно нулю, поведение не определено.
Неопределенное поведение означает, что стандарт ничего не говорит о том, что происходит.Это может привести к значимому или бессмысленному результату, может потерпеть крах или, как говорится в стандартной шутке, заставить демонов вылететь из носа.(Конечно, этого не произойдет, но это не нарушит стандарт С, если бы он это сделал.)
Типы с плавающей запятой, в отличие от целочисленных типов, часто имеют специальные значения, которые не представляютномера.Стандарт IEEE с плавающей точкой определяет, что деление на ноль может привести к результату Infinity, что и делает ваша реализация.Для целых чисел значения "Бесконечность"(Обратите внимание, что реализации C могут соответствовать или не соответствовать стандарту IEEE с плавающей запятой.)
В этом вопросе обсуждается семантика деления на ноль в плавающей запятой IEEE.