例1:(2010-09-23)有以下程序
#include <stdio.h>
#include <string.h>
main()
{char x[]=”STRING”;
x[0]=0;x[1]=’\0’;x[2]=’0’;
printf(“%d %d\n”,sizeof(x),strlen(x));
}程序运行后的输出结果是(B)
A)6 1 B)7 0 C)6 3 D)7 1
【解析】经过x[0]=0;x[1]=’\0’;x[2]=’0’;后,x[]=”0\00ING”。strlen测字符串的实际长度,不含字符串结束标志’\0’,故strlen(x)为0。sizeof测字符串所占的存储空间,包含字符串结束标志,故sizeof(x)为7其中纠结在于0和‘\0’这里有同样的效果,遇到X[0]=0之后字符串也是会停止的,所以strlen(x)的值是0而不是1而如果是字符 ‘0‘ 就不一样了。
————————————————