1:请大家看下面一段代码的输出是多少
int main()
{
char s[] = "\\123456\123456\t";
printf("%d\n", strlen(s));
system("pause");
return 0;
}
答案是:12
解:在字符串中\是一个非常特殊的字符,比如\n表示回车,\t表示空格,\123表示S,\表示\;所以s的长度是12
2:请再看下面一段代码;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char x[] = "abcd";
char y[] = { 'a','b','c','d' };
printf("%d,%d", strlen(x), strlen(y));
system("pause");
return 0;
}
输出结果:4,16;
那么为什么y的长度是16呢?
答:这是因为我们在给y赋初始值时没有位其赋上‘\0’,而strlen的停止标识是‘\0’,所以会出现这种情况,请看y的内存截图(到0刚好16字节);