| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:[求助]输出与实际情况不符是怎么回事??
只看楼主 加入收藏
wqlhx001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-3-26
收藏
 问题点数:0 回复次数:3 
[求助]输出与实际情况不符是怎么回事??
各位高手:

我是c语言的初学者,小弟现在有个问题请教!!以下程序
main()
{
char str[10],c='a';
int i=0;
for(;i<5;i++)
str[i]=c++;
printf("%s",str);
}
理论上输出abcde,而我的电脑却输出abcde↑,上箭头为一个我不会打的字符!!
如果把定义改为 char c='a',str[10];
则输出abcde,这是为什么呢?

感谢 neverTheSame 的回复
经过深思熟虑和neverTheSame的指导,我认为2楼的答案是正确的!!!
现引用二楼的答案说,因为没有‘\0’,所以最后的结果不可知,出现abcde纯属偶然!!!

[此贴子已经被作者于2007-3-27 8:35:53编辑过]

搜索更多相关主题的帖子: 实际情况 输出 abcde neverTheSame 
2007-03-26 17:55
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
char c='a',str[10];
char str[10],c='a';
这两种定义因该没有区别;
str[i]=c++;
这种表达式是先赋值后递增

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-03-26 17:58
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
出现abcde↑是因为printf("%s",str)当遇到'\0'才停止,而你的数组中并没有
,所以输出的字符是不可知的.

如果把定义改为 char c='a',str[10];
则输出abcde,这是为什么呢?
这纯属一种偶然.

我也测试过:
#include <stdio.h>
#include <conio.h>
int main(void)
{
char c='a',str[10];
int i;
clrscr();
for(i=0;i<5;i++)
str[i]=c++;
printf("%s",str);
getch();
}

结果:abcde ╠‼ΩoΣ ↔☺☺

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-26 18:03
wqlhx001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-3-26
收藏
得分:0 
谢谢 neverTheSame 大侠的回复!!
2007-03-27 08:33
快速回复:[求助]输出与实际情况不符是怎么回事??
数据加载中...
 
   



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

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