| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1640 人关注过本帖, 2 人收藏
标题:一道简单的C程序,但输出结果难解释,请高手回答
取消只看楼主 加入收藏
gxhzzhj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-9-23
结帖率:0
收藏(2)
已结贴  问题点数:20 回复次数:2 
一道简单的C程序,但输出结果难解释,请高手回答
main()
{
 long x=32769;
 printf("%ld,%d\n",x,x);
 printf("%d,%ld\n",x,x);

 }
在TC中运行,输出结果为:
32769,-32767
-32767,-2147418112
第一句输出结果好解释和理解,但是第二句输出结果为什么是这样,请高手解释,我问了我们老师都无法解释清楚,谢谢!
搜索更多相关主题的帖子: 输出 解释 结果 
2009-09-23 09:11
gxhzzhj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-9-23
收藏
得分:0 
5楼的朋友您好!谢谢您的解答,但是我还是有疑问,还不懂,像你所说,那么为什么下面的程序:
main()
{
 long x=32769;
 printf("%d,%ld\n",x,x);

 }
在TC中,输出结果为:
-32767,-2147418112

现在是只有一行了,就没有涉及到前面的16位没有输出的情况了,要是像你这样解释的话,现在后一个x用%ld输出应该是32769啊,然后计算前一个x,用%d输出是-32767,但是结果后一个x输出为什么是:-2147418112,请给予答复,谢谢您和大家!
2009-09-24 10:34
gxhzzhj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-9-23
收藏
得分:0 
我觉得2楼的解释比较有道理,谢谢大家!
2009-09-24 10:49
快速回复:一道简单的C程序,但输出结果难解释,请高手回答
数据加载中...
 
   



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

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