char str[4] = "abcd";为什么strlen(str)的结果是5?

strlen(str)是返回str不包括'\0'的字符串长度啊... strlen(str)是返回str不包括'\0'的字符串长度啊 展开
 我来答
参观西湖
2021-02-02 · 古籍有很多,写出来一起欣赏。
参观西湖
采纳数:919 获赞数:2308

向TA提问 私信TA
展开全部
strlen(str)是返回str不包括'\0'的字符串长度----但有一个前提,必须找到str后面的'\0'
str[4]填写了4个字符,没有'\0',strlen会在检测完数组以后,在数组的外面继续寻找'\0',直到找到为止。
结果是5,是因为在数字外面过了一个字节就遇到'\0'了,碰巧而已,结果不一定是几。
-----------
所以用strlen计算,传入的字符串一定要'\0'结束。否则结果是不确定的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式