Переполнение при арифметических операциях считается неопределённым поведением, потому что стандарт программирования перестаёт что-либо гарантировать в такой ситуации. 1
Переполнение возникает, когда результат операции не помещается в тип, так как стандартные числовые типы имеют ограниченный размер и множество допустимых значений. 1
Некоторые последствия неопределённого поведения:
Переполнение считается неопределённым поведением для знаковых типов, в то время как для беззнаковых типов переполнение не приводит к таким последствиям: вычисления производятся по модулю соответствующей степени двойки, учитываются только младшие биты результата. 1