c语言中的整数溢出问题

1、以以下程序为例:

#include <stdio.h>

int main(void)
{
    int i = 2147483647;    //int类型可以表示的数值范围为 -2147483648 ~ 2147483647
    unsigned int j = 4294967295;  //unsigned int的取值范围为0 ~ 4294967295
    
    printf("%d  %d  %d
", i, i + 1, i + 2);
    printf("%u  %u  %u
", j, j + 1, j + 2);
    
    return 0;
}
//运行结果显示,当数值超过数据类型可以表示的最大范围时,数值会从头开始,比如i为
2147483648将从头显示-2147483648,
//j超过其最大可以表示的范围4294967295时,将从0开始表示超出的数值。

 

原文地址:https://www.cnblogs.com/liujiaxin2018/p/15004667.html