include<stdio.h>
main()
{
char s[]="\n123\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
这个程序执行后为什么输出的结果是5,6呢
首先这是个字符串包含五个有效字符
\n, 1, 2, 3, \
和一个'\0'结束符
strlen不计算\0所以是5
sizeof计算\0所以是6
strlen(s), 获取有效字符个数
sizeof(s),获取占用空间数,包括字符串结尾的'\0',
所以sizeof(s)比strlen(s),多1