#include<stdio.h> #include<string.h> main() {char x[]="STRING"; x[0]=0;x[1]='\0';x[2]='0'; printf("

这个结果为啥是7 0,后面那个x[0]=0,就相当于'\0'么
printf("%d %d\n",sizeof(x),strlen(x));

第1个回答  2011-03-21
sizeof(x)
指的是占得空间,指的是数组的长度,数组有六个字符,其实储存在数组中时,最后一位是'\0',真实的长度就是6+1了;所以是7.

对于strlen(x);你把X[0]赋了0,应该就是相当于'\0'。
#include<stdio.h>
#include<string.h>
int main()
{
char x[7];
x[0]=0;
x[1]='\0';
x[2]='0';
printf("%d %d\n",sizeof(x),strlen(x));
}
结果同样是7 0,
这说明你是对的:就是后面那个x[0]=0,就相当于'\0'。本回答被提问者采纳
第2个回答  2013-03-21
就是后面那个x[0]=0,就相当于'\0'。
第3个回答  2011-03-21
代码没完呢吧?
相似回答