Деление на ноль приводит к аварийному завершению программ, потому что попытка деления на целочисленный ноль на процессоре семейства x86 или x86_64 приводит к возникновению аппаратного исключения (по вектору 0). 1 Соответственно, программа на Си или Си++, скомпилированная в машинный код, аварийно завершается при выполнении этого действия. 1
Согласно параграфу 5.6 стандарта языка Си++, если вторым операндом операторов '/' или '%' является 0, то в этом случае поведение не определено. 1 Неопределённое поведение означает, что стандарт не накладывает ограничений на поведение программы, и реализация не обязана его документировать. 3
В то же время, если переменная, содержащая ноль, была вещественной, то согласно стандарту IEEE 754, результатом будет вещественное число «плюс бесконечность» или «минус бесконечность» в случае ненулевого числителя, и «не-число» в случае неопределённости 0/0. 1