是否有必要初始化char数组以获得准确的长度?

Var*_*ani 0 c string

在下面的例子中,当我定义char数组未初始化并想要找到长度时,它是未定义的行为.

#include<stdio.h>
 int main()
{
char a[250];
printf("length=%d\n",strlen(a));
}
Run Code Online (Sandbox Code Playgroud)

我得到了"0".我不知道怎么样?解释一下.

Fat*_*ror 6

运气.无论运气好坏都是意见问题.数组的内容是已经占用内存的任何内容,并且未初始化.在你的情况下,它发生在第一个字节是一个'\0'.

当然,这是未定义的行为,你不能依赖它以这种方式发生.