简单的C语言试题,帮忙解下

#include<stdio.h>
#include<string.h>
main()
{ char a[7]="a0\0a0\0";
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是多少?请给出详解,谢谢
问题紧急,今天选出最佳答案~

i=7 j=2;
char a[7]="a0\0a0\0";
'\0'是字符串的结束字,有了它就说明字符串结束了!
i=sizeof(a);
sizeof 是求char a[N]所占的内存,你给了他N的内存空间
它就等于N,
j=strlen(a);
strlen 是求char a[N]里的字符串长度
字符串以'\0'结束,所以字符串是"a0",长度就是2!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-08-25
i=sizeof(a);//sizeof()操作符用于确定保存对象(变量)所需要的字节数量,由于char型变量占用一个字节,所以a[7]就占用七字节,因此,i的值就是7

j=strlen(a);//strlen()函数将返回字符串中\0之前的字符数量,由于a[]="a0\0a0\0",所以第一个\0之前共有两个字符,因此j的值就是2

所以,程序运行后的输出结果是72
第2个回答  2007-08-25
i 7
j 2
sizeof求的是字节数,取决与数组所标明的个数
strlen 求的是字符串的长度,遇到‘\0’结束
相似回答