有以下程序: #include<stdio.h> #include<string.h> main() { char x[]="STRING"; x[0]=0;x[1]=’\0’;x[2]=’0’; print

admin2013-10-14  18

问题 有以下程序:
#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));
    }
    程序运行后的输出结果是(    )。【10年9月】

选项 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遇见O或’\0’结束统计,所以为0。
转载请注明原文地址:https://jikaoti.com/ti/C1n0FFFM
0

最新回复(0)