| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:谁帮解释一下它的结果?
只看楼主 加入收藏
li39601
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-3-18
收藏
 问题点数:0 回复次数:8 
谁帮解释一下它的结果?
给数组赋初值时,当初值个数少于数组长度时,未初始化的元素自动为0:我有个问题如下程序:
main()
{char s[8];
scanf("%c%c%c",&s[0],&s[1],&s[2]);
printf("%c\n",s[3]);
puts(s);
}
输入xyz,谁帮解释一下它的运行结果? 为什么输出的s[3]不为空?为什么puts(s)输出的xyz后面还带几个符号?

[此贴子已经被作者于2006-3-19 1:45:37编辑过]

搜索更多相关主题的帖子: 结果 数组 解释 main char 
2006-03-19 01:02
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

你的什么结果?


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-19 01:07
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
字符数组肯定输出是一个空位  数字数组输出是0  

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-19 01:12
li39601
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-3-18
收藏
得分:0 
刚才那个我发错了,大家再试试现在这个程序!
2006-03-19 01:25
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
puts(s); 把s当字符串输出的~  因为你这里缺少了字符串结束标志。所以不能正确输出

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-19 01:48
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

[CODE]
main()
{
char s[8];
scanf("%s",s); /*自动加了结束标志*/
puts(s);
}

[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-19 01:50
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
当给字符数组一部分赋值,其余的会自动默认是0;但当全未赋值,值都是不可预见的(或者不同的编译器有不同的处理)

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-19 02:01
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
收藏
得分:0 
对于这个问题,不同的编译器的确会有不同的结果,我用C-FREE编译就没问题,但用另外的编译器Win-TC编译就发现xyz后紧接着些乱码

2006-03-19 08:36
oヤ偽妳變壞
Rank: 2
等 级:新手上路
威 望:4
帖 子:2251
专家分:0
注 册:2006-3-19
收藏
得分:0 
不懂
2006-03-19 13:05
快速回复:谁帮解释一下它的结果?
数据加载中...
 
   



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

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