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

strlen(str)是返回str不包括'\0'的字符串长度啊

strlen(str)是返回str不包括'\0'的字符串长度----但有一个前提,必须找到str后面的'\0'
str[4]填写了4个字符,没有'\0',strlen会在检测完数组以后,在数组的外面继续寻找'\0',直到找到为止。
结果是5,是因为在数字外面过了一个字节就遇到'\0'了,碰巧而已,结果不一定是几。
-----------
所以用strlen计算,传入的字符串一定要'\0'结束。否则结果是不确定的。
温馨提示:答案为网友推荐,仅供参考
相似回答