结果为什么是10?
这个程序的输出结果为什么会是10here iskey
main()
{ char *s,*s1="here is";
char *s2="key";
s=s1;
while(*s1)s1++;
while(*s1++=*s2++);
s2=s;
while(*s2)s2++;
printf("%d\n",s2-s);
printf("s=%s\n",s);
}
2007-07-26 23:10
2007-07-26 23:47
2007-07-27 11:17
2007-07-27 12:22
while(*s1++=*s2++); //把s2拷贝到s的末尾 此时s="here iskey"
这一步就错了把
2007-07-27 13:36
同意二楼的...s1是字符串的首地址,相当于一个指针常量...我用VC运行,编译没错,但运行出错
[此贴子已经被作者于2007-7-27 16:22:51编辑过]
2007-07-27 16:21
2007-07-27 21:43
运行通过,没有问题呀,环境是TC2
2007-07-27 22:15
main()
{
char *s,*s1="here is";
char *s2="key";
s=s1;
while(*s1) s1++;
while(*s1++=*s2++);
s2=s;
while(*s2) s2++;
s1=s;你把S的首地址付S1就能打因出
printf("%s",s1);
}
2007-07-27 22:35
同意二楼的...s1是字符串的首地址,相当于一个指针常量...我用VC运行,编译没错,但运行出错
还不是很懂,S1是指针,指针地址为什么不可以自增呢?
2007-07-27 23:21