| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1156 人关注过本帖
标题:[求助]关于字符数组输出为什么最后有一个“%s”?(愚蠢的错误)
只看楼主 加入收藏
为了c
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-2-2
收藏
 问题点数:0 回复次数:9 
[求助]关于字符数组输出为什么最后有一个“%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-03-06 18:00
mojiahui
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-31
收藏
得分:0 
可以再解释清楚一点吗
2005-03-06 22:51
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
我告诉吧,这个"%s"就是printf中的"%s",是因为这个串应该是11个字符空间,而你只给了它10个,所以最后一个'\n'被“%”冲掉了.

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-03-06 23:07
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
你看你把static 去掉是什么结果  ????

差点把你忘了...
2005-03-07 09:37
为了c
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-2-2
收藏
得分:0 
以下是引用knocker在2005-3-6 23:07:01的发言: 我告诉吧,这个"%s"就是printf中的"%s",是因为这个串应该是11个字符空间,而你只给了它10个,所以最后一个'\n'被“%”冲掉了.
不明白最后一句?

2005-03-09 19:50
无能小辈
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-3-4
收藏
得分:0 
我不明白阿!
2005-03-12 16:25
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
编译器把安排"%s"这个串紧跟着c1后面,而你的C1又显式地定义为10,所以"\0"被冲掉了

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-03-12 17:03
warxl
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-3-12
收藏
得分:0 
main()
{static char c1[11]="I am a boy";  /*这里字符串结尾还有一个"\0",所以一共有11个字符*/
printf("%s",c1);
}
2005-03-12 23:12
magic475
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2005-1-14
收藏
得分:0 
想知道去掉static ,为什么又可以正常显示呢?
也就是说:
void main()
{
   char c1[11]="I am a boy";  
   printf("%s",c1);
}
结果为什么可以显示为“I am a boy”
2005-03-13 00:04
快速回复:[求助]关于字符数组输出为什么最后有一个“%s”?(愚蠢的错误)
数据加载中...
 
   



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

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