程序员必知的高级语言c的整数溢出以及字符

 时间:2026-02-15 08:58:10

1、第1步:鼠标双击或者右击打开桌面上DEVc++软件,让其运行起来。Dev-C++是一个电脑Windows窗口运行环境下的一款非常适合于刚开始学习c++学者使用的入门级C/C++ 集成开发环境(IDE)。这款软件很自由,遵守GPL许可协议分发源代码。它大大集成了MinGW中的GCC编译器、GDB调试器和 AStyle格式整理器等众多自由软件。非常的试用,而且界面分类清楚,具有很强大的功能。

程序员必知的高级语言c的整数溢出以及字符

2、第2步:点开文件,选择新建源代码,这时候新建的代码文本还是没有命名的,是一个空命名的文件,下面我们可以通过界面左上角的文件选项,选择另存为,可以存在电脑里任何一个盘,小编为了下次可以更好的找到文件,我存在电脑的桌面上。当然你们可以选择任何一个盘,根据各人所需。

程序员必知的高级语言c的整数溢出以及字符

3、所谓的溢出整数太大,超出了整数类型的数值范围。

使用printf() 时与unsigned int类型对应的格式说明符是%u。

当我们遇见需要判断给出数据是否溢出的时候,我们可以采取用一个范围更大的数来接受需要判断的数据,然后直接和需要判断的边界值比较大小即可。

程序员必知的高级语言c的整数溢出以及字符

4、小编以具体的例子说明

原程序

#include <stdio.h>

void main() {

  int a, b;

  unsigned c, d;

  a = 2147483647; b = a+1;

  c = 4294967295; d = c+1;

  printf("a=%d,b=%d\n", a, b);

  printf("c=%u,d=%u", c, d);

}

程序员必知的高级语言c的整数溢出以及字符

5、运行结果

a=2147483647,b=-2147483648

c=4294967295,d=0

这个数据是有问题的

程序员必知的高级语言c的整数溢出以及字符

6、溢出

结果分析

0 1 1 1 1 1 1 1...1 1 1 1 1 1 1   a(2147483647)

1 0 0 0 0 0 0 0...0 0 0 0 0 0 0  a+1(2147483648)

1 0 0 0 0 0 0 0...0 0 0 0 0 0 0  b(-2147483648)

程序员必知的高级语言c的整数溢出以及字符

7、结论

a+1 的结果(2147483648) 超出了基本整型变量 b 所能容纳(表示)的数值范围(-2147483648~2147483647)。

小编给大家留一个思考题:

那么d是怎么产生的呢,请分析d的结果。

程序员必知的高级语言c的整数溢出以及字符

  • HTML常用标签hr
  • Java怎么编写读取文件内容的程序?
  • 青椒火腿串串的做法
  • unity 每次启动都进入默认启动界面
  • 如何在word中插入反余切函数
  • 热门搜索
    黄河口生态旅游区 宿迁旅游 爱好旅游打一成语 长春旅游攻略 郑州旅游景点大全 沈阳旅游景点大全 云南旅游线路 新加坡旅游签证 旅游度假 喀纳斯旅游