Overflow

There are a number of data types in C that can hold numbers. The integer-types have a maximum and minimum value and if we increment the variable beyond the maximum value it will become the minimum possible value. That is MAX+1 will become MIN. This is called integer overflow.

The same is true if we decrement beyond the minimal value. So MIN-1 will become MAX. This is called underflow.

Let's see a few examples with some of the data types.

char

#include<stdio.h> int main() { char c; c = '~'; printf("%i %c\n", c, c); c++; printf("%i %c\n", c, c); c++; printf("%i\n", c); // This will print -128 and the character is unprintable return 0; }
126 ~ 127  -128

int

#include<stdio.h> #include<limits.h> int main() { int num; num = INT_MAX; printf("%i\n", num); num++; printf("%i\n", num); return 0; }
2147483647 -2147483648