有以下程序  #include <stdio.h>  #include <string.h>  main()  { char a[]="TEXT",*b="++",c[3]="1";   printf("%d,%d,",strlen(a),sizeo

admin2022-04-01  19

问题 有以下程序
 #include <stdio.h>
 #include <string.h>
 main()
 {  char a[]="TEXT",*b="++",c[3]="1";
    printf("%d,%d,",strlen(a),sizeof(a));
    printf("%d,%d,",strlen(b),sizeof(b));
    printf("%d,%d,\n",strlen(c),sizeof(c));
 }
 程序运行后的输出结果是(          )。

选项 A、4,5,2,4,1,3,
B、4,4,2,2,1,1,
C、5,5,3,3,2,2,
D、4,4,2,2,1,3

答案A

解析 sizeof()是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。strlen(*char)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可以是自己定义的,也可以是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。sizeof(a)求数组a所占空间的大小,包括字符串最后的’\0’,所以sizeof(a)=5,strlen()遇到’\0’就结束,strlen(a)=4。strlen(b)是指针指向的字符串长度,sizeof(b)是指针的大小。strlen(C)是字符串的长度,sizeof(C)是数组的长度。因此,输出4,5,2,4,1,3。故答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/hqd0FFFM
0

最新回复(0)