我写了这段代码-
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 的长度如何变化?
最佳答案
s3
和 s4
未初始化,也不是 '\0'
终止的 C 字符串,这就是 strlen( )
期望。因此您无法将它们传递给 strlen()
。
您看到的是undefined behaviour .
关于c - strlen()值如何自动改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34422120/