为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
名不见经传的小菜鸟 2017-11-23 13:29:19
一:#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;}
查看完整描述

2 回答

?
慕用4063026

TA贡献195条经验 获得超115个赞

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

查看完整回答
反对 回复 2017-12-20
?
慕沐4449596

TA贡献34条经验 获得超15个赞

第一个表示*a++表示数组中的下一个项,第二个a++表示给a赋值,最后*a,其实是*(a+i)的元素,所以两个都一样

查看完整回答
反对 回复 2017-12-20
  • 2 回答
  • 0 关注
  • 1275 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信