单选(1分)
以下程序的功能是分别测量字符数组及数组中存放的字符串的长度,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
#include
#include
int main( )
{
char a[]="abcdefg",b[10]="abcdefg";
_________________________; /*测量字符数组a,b的长度,并输出*/
_________________________; /*测量字符数组a,b中存放的字符串的长度,并输出*/
return 0;
}
A.
第6行: printf("%d %d\n",sizeof(*a) ,sizeof(*b))
第7行: printf("%d %d\n",strlen(*a) ,strlen(*b))
B.
第6行: printf("%d %d\n",strlen(a) ,strlen(b))
第7行: printf("%d %d\n",sizeof(a) ,sizeof(b))
C.
第6行: printf("%d %d\n",sizeof(&a) ,sizeof(&b))
第7行: printf("%d %d\n",strlen(&a) ,strlen(&b))
D.
第6行: printf("%d %d\n",sizeof(a) ,sizeof(b))
第7行: printf("%d %d\n",strlen(a) ,strlen(b))
小妹不会啊,大神帮帮忙吧
选D。。。。。。。。。。。。。。。。
选D,这是一个概念题
选D,因为sizeof是测试一个空间大小的,字符串数组后面会默认添加一个‘\0’;所以用sizeof可以测出字符串数组的空间大小,
而strlen是测试一块空间中实际数据的大小,会把后面的默认添加的'\0',给去掉,不在strlen的测试范围内,比如一个数组a[10],里面存储了ab;
如果用sizeof话就是sizeof(a) = 10;而用strlen的话就是strlen(a) = 2;不知道我说的能明白吗