以下是引用mm1010220cs在2011-4-21 19:15:04的发言:
void main(void)
{char *s, *s1 = "here is", *s2 = "key";
s = s1; while (*s1!='\0') s1++;
//s指向字符‘h’
while (*s1++=*s2++);s2 = s;
//从"here is"这个字符串的末尾开始增加"key",内存中就在连续位置存放了"here iskey"
同时s2被复制s存放的地址,这样s2就指向了"h"
while(*s2!='\0')s2++; printf("%d\n",s2-s);
//因为s2是字符指针,循环到'\0'增加10("here iskey"含10个字符),所以s2-s=10;
void main(void)
{char *s, *s1 = "here is", *s2 = "key";
s = s1; while (*s1!='\0') s1++;
//s指向字符‘h’
这里的字符串定义的地址末尾应该在h字母前吧?
while (*s1++=*s2++);s2 = s;
//从"here is"这个字符串的末尾开始增加"key",内存中就在连续位置存放了"here iskey"
S2字符串连接后应该是
同时s2被复制s存放的地址,这样s2就指向了"h"
"
keyhere is"的吧?
while(*s2!='\0')s2++;
printf("%d\n",s2-s);
//因为s2是字符指针,循环到'\0'增加10("here iskey"含10个字符),所以s2-s=10;
大哥,我这两问题对么?