问题
单项选择题
有以下程序:
main()
char a[7]="a0\0a0\0";
int i, j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n", i, j);
程序运行后的输出结果是
A) 2 2
B) 7 6
C) 7 2
D) 6 2
答案
参考答案:C
解析: 字符数组的元素数量在定义时已经确定,与其存储的内容无关,本题中语句char a[7]定义了由7个字符元素组成的字符数组,其sizeof(a)=7。字符数组常常存储字符串,但其存储的字符串长度与数组长度没有直接关联。C语言规定,字符串从首字符开始,以第一个值为ASCII码0的字符结尾,其中的非0字符数量就是字符串的长度。在本题中,a[0]='a',a[1]='0',a[2]=0,从首字符位置a[0]到第一个ASCII值为0的字符a[2],其中共有2个非0字符,因此strlen(a)=2。