| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 530 人关注过本帖
标题:溢出问题
只看楼主 加入收藏
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
溢出问题
#include"stdio.h"
int main()
{
int sum;
sum=1*2*3*4*5*6*7*8*9*10;
printf("%d",sum);

int输的表示范围为-32768~32767     
}  结果是3628800      我用VB的intger溢出      用VC又不会溢出,int输的表示范围为-32768~32767 ,应该会溢出的啊,请问大家这是为什么?
2010-03-14 11:01
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:5 
当你数值过大时 默认int 变为 long int了 你要现定义short int再试试
2010-03-14 11:08
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:5 
你的sizeof(int)是等于几呀,等于四的话足已,等于二的话就是你说的情况了
2010-03-14 11:11
kingdoking
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2007-12-8
收藏
得分:5 
由于语言差义,对整型 int 定义范围不同,VC用四字节定义了 int ,那么范围就是2地32次方 ,足以容纳你的结果,
VB采用2个字节定义整型,所以导致溢出!


2010-03-14 11:16
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
我改了下
#include"stdio.h"
 int main()
{
short int i,n,sum,j;
sum=0;
n=1;
for(i=1;i<=10;i++)
{
n=n*i;
sum=sum+n;
}
printf("%d\n",sum);


j=sizeof(short int);
printf("%d",j);
return 0;
}

结果是
图片附件: 游客没有浏览图片的权限,请 登录注册

溢出了怎么不报错
2010-03-14 13:16
小访客
Rank: 2
等 级:论坛游民
帖 子:24
专家分:18
注 册:2009-11-10
收藏
得分:5 
short int 的范围是-32767~32767   它是一个循环 所以溢出后系统不会报错
2010-03-14 13:56
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
谢谢各位
2010-03-14 16:09
快速回复:溢出问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078553 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved