C语言关于整型数据溢出的一个问题请教

我是一名C语言的初学者,最近在谭浩强先生的《C语言程序设计》中看到有一道关于整型数据溢出的例题(如下),#include<stdio.h>main(){inta,b;a=... 我是一名C语言的初学者,最近在谭浩强先生的《C语言程序设计》中看到有一道关于整型数据溢出的例题(如下),
#include <stdio.h>
main()
{ int a,b;
a=32767;
b=a+1;
printf(“%d,%d”,a,b);

这道题的运行结果为“32767,-32768”,现在我想得到b=32768的结果,根据书中的提示,将变量b改成long型可以得到预期的结果32768。我写的程序如下:
#include <stdio.h>
main()
{ long a,b;
a=32767;
b=a+1;
printf(“%d,%d”,a,b);
}
我在Turbo C上运行这个程序,得到的结果是“32767,0”,现在我不知道错误在哪里,恳请各位大侠不吝赐教,小月亮不胜感激!
非常感谢大家,我的问题才一天就有这么多人来为我解答。我通过将各位大侠的答案一一在turbo c2.0上运行。运行了如下的程序
#include <stdio.h>
main()
{ long a,b;
a=32767;
b=a+1;
printf("%ld,%ld",a,b); /*当然zjzl1001的写法也可以*/
}
输出的结果是“32767,32768”。部分回答者说在自己的机上运行能得到预期的结果,这可能是编译器的问题。所以shijp、WXD11011,zjzl11001的答案都是符合我的问题要求的,不过悬赏分只能给一个人,那就是第一个回答正确的,不好意思^-^总之小月亮非常谢谢大家帮我解决这个疑惑,以后有什么问题我会再来请教大家的!谢谢大家热情的帮助!
展开
 我来答
百度网友ec167ac34
2007-09-19 · TA获得超过1788个赞
知道小有建树答主
回答量:1312
采纳率:0%
帮助的人:1160万
展开全部
这不可能吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我滴个天了
2018-07-17
知道答主
回答量:2
采纳率:0%
帮助的人:1713
展开全部
长整形输出是必须是%ld,否则输出会按照短整型来输出,自然就会溢出了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式