栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c输入数据溢出和c++输入数据溢出的区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c输入数据溢出和c++输入数据溢出的区别

对于c++来说,前提条件,c++版本不易过低,太低的和c的机制差不多。
看下面两个程序:

cpp代码

#include 
int main() {
  int u;
  scanf("%d", &u);
  printf("%dn", u);
  return 0;
}

c代码

#include 
int main() {
  int u;
  scanf("%d", &u);
  printf("%dn", u);
  return 0;
}

cstdio与stdio.h是不同的一个属于c++,一个属于c,但是他们都可以调用scanf()和printf()
当我们输入数据:4294967295
c++的处理会对输入的数据进行检测,最终以溢出的方向进行收敛,负溢出收敛为int型的最小值,正溢出收敛为int型的最大值。
c的处理是会对输入数据的二进制从低到高位存到内存中,只读4字节,所以如果位超过4字节,多余的的舍弃,然后以对int型的解释方法解释二进制数据,在代码中的表现是隐式转化,答案为-1。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号