main() { char a[7]="a0\0a0\0";int i,j; i=sizeof(a);j=strlen(a); printf("%d %d\n"

main()
{ char a[7]="a0\0a0\0";int i,j;
i=sizeof(a);j=strlen(a);
printf("%d %d\n",i,j);
}
求输出结果,详细解及思路
最新回答
余安

2024-06-06 00:09:54

输出 7 2

sizeof(a) 相当于数组a所占空间,等于元素个数*单个元素所占空间,即 7*sizeof(char)=7*1=7
strlen函数是判断字符串长度,其判断依据是碰到'\0'即停止,此处可看到在第1个'\0'前共2个字符,所以输出2
森林中的绅士

2024-06-06 00:22:51

main()
{ char a[7]="a0\0a0\0";int i,j;
i=sizeof(a);//sizeof的作用是求出整个数组的长度
j=strlen(a);//strlen的作用是求出在遇到第一个'\0'前,字符的长度
printf("%d %d\n",i,j);
}
输出为7 2
玩世

2024-06-06 00:08:47

i=7 j=2
strlen是字符串长度 遇到/0表示字符串结束,所以strlen只有a0连个字符所以是2
而sizeof是a数组的大小所以是7