C语言中\0究竟有什么用?

\0表示结束,但在实际字符数组中究竟有什么用?比如"字符数组的长度就显得不重要"这句话包含的意思。... \0表示结束,但在实际字符数组中究竟有什么用?比如"字符数组的长度就显得不重要"这句话包含的意思。 展开
 我来答
自我编程
2018-12-20 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

结束符号‘\0’,也可以表示成数字0。(字符'\0'对应的ascii码就是0)

这个结束符号有没有实际上不影响字符数组实际内容。只是让程序识别字符串到哪里算结束。

特别是我们常用的一些关于字符串的函数,也是通过结束符号来识别字符串长度的。

所以我们定义字符数组存放字符串,通常会多申请一个字符空间,用来保存结束符号

举个例子:

比如下面这个简单代码。

"abcdefghi"这个字符串常量只有9个字符,但在实际最后还有一个结束符号0,所以我定义数组长度10。此时str【9】的值就是0

当调用strlen函数计算字符串长度时,得到的就是9。

但当我把str【3】的值变成0,strlen计算长度就知道str【3】为止(实际此时str【9】的值还是0,但只以第一个遇到的0为准)

#include <stdio.h>
#include <string.h>
int main()
{
    char str[10]={"abcdefghi"};
    printf("strlen(str)=%d  %s\n",strlen(str),str);
    str[3]=0;
    printf("strlen(str)=%d  %s\n",strlen(str),str);
    return 0;
}
萧寒
2018-12-20 · 知道合伙人IT服务行家
萧寒
知道合伙人IT服务行家
采纳数:23 获赞数:347
软件设计师,中职学校计算机教研室教研组长。

向TA提问 私信TA
展开全部
1、'\0'就是为空的字符,所以什么都不输出。
2、'\0'是字符串的结束标志,遇到\0就表示该字符串已到末尾。
3、'\0'的ASCII码值为0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcy990718
2018-12-20 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1654万
展开全部
这是c语言对字符串结束符的规定。也就是字符串的实际内容再加上一个'\0'表示了。比如:字符串:
char abc[10];
strcpy(abc,"hello");
则abc数组的存储结构为:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yeyuehun11
2018-12-20 · 贡献了超过136个回答
知道答主
回答量:136
采纳率:7%
帮助的人:12.4万
展开全部
'\0'是字符串的结束标志,遇到\0就表示该字符串已到末尾。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式