sizeof 和 strlen



# include < stdio. h> 
void main( )
{
chara[]={'a','b','c','d','e','f','g','\n'};
int x,y;

x= sizeof(a) ;

y= strlen(a);

printf("%d,%d" ,x,y);
}

请问各位我写的结果是 9,8
但参考答案是9,10。请问是我写错了吗?

strlen的返回值是不确定的,因为a数组并没有字符串结束符,所以strlen的结果会是个随机数。你应该是数组初始化写错了,最后一个是'\0',不是'\n'

strlen()函数:该函数从第一个字符开始计算字符串中字符数,直到遇到空字符即'\0'为止,然后返回计算字符数的长度,包括'\0'。