问题
单项选择题
有以下程序 #include<stdio.h> #include<string.b> main() {char x[]="STRING"; x[0]=0;x[1]='\0';x[2]='0'; printf("%d%d\n",sizeof(x),strlen(x)); } 程序运行后的输出结果是( )。
A.6 1
B.7 0
C.6 3
D.7 1
答案
参考答案:B
解析: sizeof(表达式)的功能是返回“表达式”结果所占机器“字节”的大小。strlen(字串)的功能是计算“字串”中的'\0'之前的字符个数。二者都可以用来取字符串长度,不同之处在于sizeof取到的字符串长度包括字符串结束标记'\0',而strlen得到的长度则不包括'\0',而'\0'在字符串中是不显示的,所以sizeof得到的字符串长度要比strlen得到的字符串长度大1。本题中sizeof。求得的为数组分配的空间的大小,字符串“STRING”6个字符再加上最后的'\0',为7个字符。strlen遇见0或'\0'结束统计,所以为0。