主题:菜鸟问题
kongleung
[专家分:0] 发布于 2010-07-15 20:30:00
#include <stdio.h>
main()
{
char str[6]={'a','b','\0','c','d','\0'};
printf("%s",str);
}
运行结果:ab
为什么是ab啊。是不是字符数组是以最后一个字符是结束标记('\0')?
最后更新于:2010-07-15 20:41:00
回复列表 (共9个回复)
板凳
强强 [专家分:4740] 发布于 2010-07-15 21:17:00
软件作者社区www.soft86.net明显是来踢场子的,应该封ID
3 楼
cgl_lgs [专家分:21040] 发布于 2010-07-15 23:29:00
字符串是以'\0'结尾。
4 楼
alweeq86 [专家分:1170] 发布于 2010-07-15 23:50:00
[code=c]
main()
{
printf("%d\n",strlen("a\0\"\x41"));
}
[/code]
这个结果是1 你要能想明白这个 就能想明白那个为什么是ab了
5 楼
kunting [专家分:0] 发布于 2010-07-16 14:24:00
我也学习了一下下
6 楼
kongleung [专家分:0] 发布于 2010-07-17 12:51:00
发贴就是不懂才发的,有人愿意指教最好了。谢谢各位!
7 楼
雪光风剑 [专家分:27190] 发布于 2010-07-18 07:03:00
%s不做边界检查,穷举到第一个'\0'才停下,这点要注意,所以一般字符串(尤其是指针形式存储)在用的时候一定要注意检查末尾是否有这个结束符
8 楼
幻水hs [专家分:30] 发布于 2010-07-21 18:21:00
是遇到的第一个\0 结束符号 结束的
9 楼
moke9 [专家分:30] 发布于 2010-09-02 07:36:00
你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846
我来回复