我写了这段代码-

char s1[10] = "he",  s2[20] = "she", s3[30], s4[30];

printf("%d %d", strlen(s2) + strlen(s3), strlen(s4));


输出-

6 9


然后我写了这段代码-

char s1[10] = "he",  s2[20] = "she", s3[30], s4[30];

printf("%d %d", strlen(s3), strlen(s4));


通过删除strlen(s1) +

输出-

0 3


我的问题是字符串s4的长度如何变化?

最佳答案

s3s4未初始化,也不是'\0'终止的C字符串,这是strlen()期望的。因此,您不能将它们传递给strlen()

您看到的是undefined behaviour

关于c - strlen()值如何自动更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34422120/

10-11 22:06
查看更多