有如下程序 #include <stdio.h> #include <string.h> main( ) { char a[] = "1234", *b = "ABC"; printf("%d,%d,%d,%d\n", strl

admin2020-06-16  21

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

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

答案D

解析 当将一个字符串存储到一个字符型数组中时,系统会在其末尾自动加上一个空字符’\0’作为结束符, strlen()函数的返回值是字符串的实际长度,不包括结束符,所以strlen(b)=3,strlen(a)=4,而sizeof()函数作用就是返回一个对象或者类型所占的内存字节数,返回值包括结束符,所以sizeof(a)=5由于一个指针在内存中占用四个字节,故sizeof(b)=4,答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/p7Cp777K
0

相关试题推荐
最新回复(0)