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的答案都是符合我的问题要求的,不过悬赏分只能给一个人,那就是第一个回答正确的,不好意思^-^总之小月亮非常谢谢大家帮我解决这个疑惑,以后有什么问题我会再来请教大家的!谢谢大家热情的帮助! 展开
#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的答案都是符合我的问题要求的,不过悬赏分只能给一个人,那就是第一个回答正确的,不好意思^-^总之小月亮非常谢谢大家帮我解决这个疑惑,以后有什么问题我会再来请教大家的!谢谢大家热情的帮助! 展开
7个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询