while(*s1&&*s2&&*s2++==*s1++);怎样理解
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/05 01:03:03
while(*s1&&*s2&&*s2++==*s1++);怎样理解
*s2++相当于先*s2,然后s2++.
再问: main() {int n; char *p1,*p2; p1="abcxyz"; p2="abcijk"; n=fun(p1,p2); printf("%d\n",n); getch(); } fun(s1,s2) char *s1,*s2; {while(*s1&&*s2&&*s2++==*s1++); return(*s1-*s2); } 输出答案是15 在while(*s1&&*s2&&*s2++==*s1++);后加上 printf(“%c%c”,*s1,*s2);得到这时的*s1=y;*s2=j, 不明白为什么是y和j,谢谢
再答: *s2++相当于先*s2,然后s2 =s2+1。 当*s2!=*s1时跳出循环,即*s2等于i,*s1等于x时跳出循环,在跳出循环前s2 = s2+1,s1 =s1+1 即s2指向了j,而s1指向了y。 你可能认为是s2指向了i,而s1指向了x吧。假如是的话,那么没加1之前,二者都指向c,如果指向c,那么还不能跳出循环,那么此时的i和j还不能输出,一定是i和j碰面时才会跳出循环,一旦i和j碰面,那么s2,s1早已加1了。
再问: main() {int n; char *p1,*p2; p1="abcxyz"; p2="abcijk"; n=fun(p1,p2); printf("%d\n",n); getch(); } fun(s1,s2) char *s1,*s2; {while(*s1&&*s2&&*s2++==*s1++); return(*s1-*s2); } 输出答案是15 在while(*s1&&*s2&&*s2++==*s1++);后加上 printf(“%c%c”,*s1,*s2);得到这时的*s1=y;*s2=j, 不明白为什么是y和j,谢谢
再答: *s2++相当于先*s2,然后s2 =s2+1。 当*s2!=*s1时跳出循环,即*s2等于i,*s1等于x时跳出循环,在跳出循环前s2 = s2+1,s1 =s1+1 即s2指向了j,而s1指向了y。 你可能认为是s2指向了i,而s1指向了x吧。假如是的话,那么没加1之前,二者都指向c,如果指向c,那么还不能跳出循环,那么此时的i和j还不能输出,一定是i和j碰面时才会跳出循环,一旦i和j碰面,那么s2,s1早已加1了。
while(*s1&&*s2&&*s2++==*s1++);怎样理解
(s3-s2)/s2-(s2-s1)/s1=?
下面函数的功能是 a(s1,s2) char s1[],s2[];{while(*s2++=*s1++)}
while循环条件是while(s1 = strstr(s1,s2)) {s1+=strlen(s2)},
c语言语句分析 while(s1[i]&&s2[i]&&s1[i]==s2[i])
c++中while(*s1&&*s2&&*s2++==*s1++);是什么意思呀
while语句的意思请问while((*s1++==*s2++)&&*s1)是什么意思啊?
输入一个数,然后把它倒着输出.这段 “while(s1) { s2=s2*10+s1%10; s1=s1/10; }”代
fun(char *w,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while(s
已知函数定义如下:ab(char *s1,char*s2) {while(*s2++=*s1++);}函数ab的功能是什
i=0; while (s1[i]==s2[i] && s1[i]!='\0') i++; return (s1[i]-
S1:S2=2:5 S2:S3=4:10 S1:S2:S3=