搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 调试程序后,系统会不会出现错误的显示结果
标题:
调试程序后,系统会不会出现错误的显示结果
只看楼主
代编小鱼
来 自:外星球
等 级:
论坛游民
帖 子: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
等 级:
版主
威 望:
8
帖 子:245
专家分:792
注 册:2018-7-14
第
2
楼
得分:0
没毛病,就是这样啊。内存里面存的都是0和1,不看怎么存,关键看怎么读。
C果然是有点难啊!
2018-10-06 19:46
Mr_doge
等 级:
贵宾
威 望:
10
帖 子:159
专家分:385
注 册:2018-6-28
第
3
楼
得分: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
不二先生
等 级:
新手上路
帖 子:8
专家分:0
注 册:2018-10-7
第
4
楼
得分:0
没错!a赋值取最后一次的。
2018-10-07 16:25
代编小鱼
来 自:外星球
等 级:
论坛游民
帖 子:26
专家分:25
注 册:2018-8-19
第
5
楼
得分:0
回复 3楼 Mr_doge
哦,好的,谢谢,懂了
2018-10-09 00:51
代编小鱼
来 自:外星球
等 级:
论坛游民
帖 子:26
专家分:25
注 册:2018-8-19
第
6
楼
得分:0
回复 2楼 MeandC
哈哈,我之前主要是搞不懂ASCII码,刚入门
2018-10-09 01:07
代编小鱼
来 自:外星球
等 级:
论坛游民
帖 子:26
专家分:25
注 册:2018-8-19
第
7
楼
得分:0
回复 4楼 不二先生
好的
2018-10-09 01:08
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-490212-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.113374 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved