What is range limitation in C?

After hitting range limit, loop terminates by default

#include <stdio.h>
#include <math.h>
int main()
{
    int i = pow(2, 31) - 1;
    while (i > 0) {
        i++;
        printf("%d\n", i);
    }
    printf("What?!\n");

    return 0;
}