I#include "stdio.h"
main()
{
char str1[80],str2[80];
int i=0,j=0;
gets(str1);
gets(str2);
while(str1[i]!='\0')i++;
while((str1[i++]=str2[j++])!='\0'); /*这段要怎么理解?这是只有表达式没有语句吗?但括号里面的应该不是表达式吧?*/
printf("结果为:%s\n",str1);
}
如果我在STR1这数组输入this is,str2数组里填入PAN,那
str1[0]='t'
str1[1]='h'
str1[2]='i'
str1[3]='s'
str1[4]=' '
str1[5]='i'
str1[6]='s'
str1[7]='\0'
那while(str1[i]!='\0')i++;这条语句循环结束后i应该是等于7了。
而while((str1[i++]=str2[j++])!='\0');里面的str1[i++]不是变成了str1[8]了吗?那str2数组第一个字符P不就去到str1[8]里面去了吗?那到结束时中间不就有一个结束符吗?这主要是这里不太明白。
可能我才是刚刚开始自学,所以很多地方都不太明白。
能解答一下这个吗??
[此贴子已经被作者于2006-11-21 8:14:05编辑过]