| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 467 人关注过本帖
标题:[求助]关于字符数组输出为什么最后有一个“%s”?(愚蠢的错误)
收藏  订阅  推荐  打印 
为了c
Rank: 2
等级:注册会员
帖子:62
积分:720
注册:2005-2-2
[求助]关于字符数组输出为什么最后有一个“%s”?(愚蠢的错误)

有一个数组定义 main() {static char c1[10]="I am a boy"; /*刚好10个字符*/ printf("%s",c1); } 屏幕上显示为 I am a boy%s 为什么最后有一个“%s”? 请各位老师指点一下,谢谢! 谢谢大家!我犯了一个愚蠢的错误!

[此贴子已经被作者于2005-3-9 19:48:38编辑过]

搜索更多相关主题的帖子: 字符  输出  boy  定义  屏幕  
2005-3-6 18:00
idealistic33
Rank: 2
等级:注册会员
帖子:67
积分:770
注册:2005-1-7

array bounds overflow

人生最大的苦痛是梦醒了无路可走,做梦的人是 幸福的; 倘没有看看出可走的路,最要紧的是不要去 惊醒他。
2005-3-6 21:15
mojiahui
Rank: 1
等级:新手上路
帖子:3
积分:130
注册:2004-12-31

可以再解释清楚一点吗
2005-3-6 22:51
Knocker
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:36
帖子:9963
积分:324662
注册:2004-6-1

我告诉吧,这个"%s"就是printf中的"%s",是因为这个串应该是11个字符空间,而你只给了它10个,所以最后一个'\n'被“%”冲掉了.

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-3-6 23:07
天使预备役
Rank: 4
等级:高级会员
威望:3
帖子:669
积分:6804
注册:2004-4-6

你看你把static 去掉是什么结果  ????

我 :“日本人也算人?” 上帝:“算,算,算吧。”。 我 :“这不是你的真心话。” 我 :“失手造批禽兽出来也就算了,但也不能把它们紧挨着咱中国人放啊!” 上帝:“你们中国人自己死好面子讲什么仁义,早点踏平过去,不早没事了。” 我 :。。。
2005-3-7 09:37
为了c
Rank: 2
等级:注册会员
帖子:62
积分:720
注册:2005-2-2

以下是引用knocker在2005-3-6 23:07:01的发言: 我告诉吧,这个"%s"就是printf中的"%s",是因为这个串应该是11个字符空间,而你只给了它10个,所以最后一个'\n'被“%”冲掉了.
不明白最后一句?

2005-3-9 19:50
无能小辈
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2005-3-4

我不明白阿!
2005-3-12 16:25
Knocker
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:36
帖子:9963
积分:324662
注册:2004-6-1

编译器把安排"%s"这个串紧跟着c1后面,而你的C1又显式地定义为10,所以"\0"被冲掉了

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-3-12 17:03
warxl
Rank: 1
等级:新手上路
帖子:2
积分:120
注册:2005-3-12

main()
{static char c1[11]="I am a boy";  /*这里字符串结尾还有一个"\0",所以一共有11个字符*/
printf("%s",c1);
}
2005-3-12 23:12
magic475
Rank: 2
等级:注册会员
帖子:66
积分:760
注册:2005-1-14

想知道去掉static ,为什么又可以正常显示呢?
也就是说:
void main()
{
   char c1[11]="I am a boy";  
   printf("%s",c1);
}
结果为什么可以显示为“I am a boy”
2005-3-13 00:04
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.070803 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved