猿问

帮我解释一下为什么第一个和第二个程序里的里面的while里的那个a带不带*都对啊?

一:

#include<stdio.h>

#include<stdlib.h>

char* mycat(char *a,char *b)

{

char* ret=a;

while(*a!='\0')

{

*a++;

}

while(*b!='\0')

{

*a=*b;

*a++;

*b++;

}

*a='\0';

return ret;

}

int main()

{

char s1[20]="abcd";

char s2[20]="Abcde";

printf("%s\n",mycat(s1,s2));

return 0;

}

二:

#include<stdio.h>

#include<stdlib.h>

char* mycat(char *a,char *b)

{

char* ret=a;

while(*a!='\0')

{

a++;

}

while(*b!='\0')

{

*a=*b;

*a++;

*b++;

}

*a='\0';

return ret;

}

int main()

{

char s1[20]="abcd";

char s2[20]="Abcde";

printf("%s\n",mycat(s1,s2));

return 0;

}


名不见经传的小菜鸟
浏览 1276回答 2
2回答

慕用4063026

a++= *a++=a[i++]都是下一个

慕沐4449596

第一个表示*a++表示数组中的下一个项,第二个a++表示给a赋值,最后*a,其实是*(a+i)的元素,所以两个都一样
随时随地看视频慕课网APP
我要回答