第1个回答 2008-08-17
输出是 7 2
sizeof运算符求的是所占的字节数,你的程序中已给分组a分配了7个字节,所以i=7;而strlen是一个字符串函数,它表示以'0'结束的字符串的前面的字符的个数,它遇到'\0'就结束,所以这里它只统计了a,0两个字符,即得出的长度为2.
"a0\0a0\0"只是一个字符串,其中\表示转译的意思,它要和它后面的字符一起看作一个字符。如\n是换行,\r是回车等
具体可以参见C语言的库。本回答被提问者采纳
第2个回答 2008-08-17
输出结果是7 2
"a0\0a0\0"是一个字符串 它由'a'、'0'、'\0'、'a'、'0'、'\0'、'\0'七个字符组成
i=sizeof(a); 计算的是数组所占的存储单元的大小 应该是7个字节 因为定义char a[7]的a后面的大小是7
j=strlen(a); 是计算字符串的长度,计算字符串的长度是 遇到空字符为止 也就是ascii码为0的代码这里面的第三个字符就是空字符 所以字符串的长度是2
第3个回答 2008-08-17
\0是空字符;strlen是返回字符串长度,遇到第一个\0为止,所以会输出2,即a,0两个字符;
sizeof是返回数组内元素的个数,因为定义了char a[7]即申请了7个内存空间,所以个数应该为7(不论有没有初始化);
第4个回答 2008-08-17
\0就是字符串结束标记
sizeof 返回数组a的占用的空间,所以i的值为7
strlen返回字符串长度,遇到字符串结束标记为止,所以j的值为2
输出结果7 2