回 帖 发 新 帖 刷新版面

主题:菜鸟问题

#include <stdio.h>
main()
{
    char str[6]={'a','b','\0','c','d','\0'};
    printf("%s",str);
}


运行结果:ab

为什么是ab啊。是不是字符数组是以最后一个字符是结束标记('\0')?

回复列表 (共9个回复)

沙发

顶顶顶顶顶顶顶顶顶顶顶~~~

板凳

软件作者社区www.soft86.net明显是来踢场子的,应该封ID

3 楼

字符串是以'\0'结尾。

4 楼


[code=c]
 main()
{
    printf("%d\n",strlen("a\0\"\x41"));
}
[/code]
这个结果是1  你要能想明白这个 就能想明白那个为什么是ab了

5 楼

我也学习了一下下

6 楼

发贴就是不懂才发的,有人愿意指教最好了。谢谢各位!

7 楼

%s不做边界检查,穷举到第一个'\0'才停下,这点要注意,所以一般字符串(尤其是指针形式存储)在用的时候一定要注意检查末尾是否有这个结束符

8 楼


是遇到的第一个\0 结束符号 结束的

9 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册