| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 482 人关注过本帖
标题:调试程序后,系统会不会出现错误的显示结果
只看楼主 加入收藏
代编小鱼
Rank: 2
来 自:外星球
等 级:论坛游民
帖 子:26
专家分:25
注 册:2018-8-19
结帖率:66.67%
  问题点数:0  回复次数:6   
调试程序后,系统会不会出现错误的显示结果
#include <stdio.h>
void main()
{
int a,b=322;
float x,y=8.88;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);
}
输出结果为:
107,322.000000,107,B请按任意键继续. . .
为什么系统会输出这个结果呢?
这个结果很明显是错误的吧......
搜索更多相关主题的帖子: 调试  系统  错误  显示  结果  
2018-10-06 18:10
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
  得分:0 
没毛病,就是这样啊。内存里面存的都是0和1,不看怎么存,关键看怎么读。


C果然是有点难啊!
2018-10-06 19:46
Mr_doge
Rank: 5Rank: 5
等 级:职业侠客
威 望:7
帖 子:142
专家分:303
注 册:2018-6-28
  得分:0 
显示结果正确,分析一下:

int a,b=322;
 float x,y=8.88;
 char c1='k',c2;
 a=y;//此时a为8
 x=b;//此时x为322.0
 a=c1;//此时a被赋值为'k',k的ASCII为107
 c2=b;//此时四个bit位的c2被赋值为整形数值322,二进制溢出并截断,得到结果是66,%c以字符输出,就会输出'B'

另外IDE在编译的时候应当有警告说明编译过程存在数值溢出
2018-10-07 08:41
不二先生
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-10-7
  得分:0 
没错!a赋值取最后一次的。
2018-10-07 16:25
代编小鱼
Rank: 2
来 自:外星球
等 级:论坛游民
帖 子:26
专家分:25
注 册:2018-8-19
  得分:0 
回复 3楼 Mr_doge
哦,好的,谢谢,懂了
2018-10-09 00:51
代编小鱼
Rank: 2
来 自:外星球
等 级:论坛游民
帖 子:26
专家分:25
注 册:2018-8-19
  得分:0 
回复 2楼 MeandC
哈哈,我之前主要是搞不懂ASCII码,刚入门
2018-10-09 01:07
代编小鱼
Rank: 2
来 自:外星球
等 级:论坛游民
帖 子:26
专家分:25
注 册:2018-8-19
  得分:0 
回复 4楼 不二先生
好的
2018-10-09 01:08







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

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