while(*p1) p1++; while(*p2) { *p1=*p2; p1++; p2++; } *p1=0; 这个怎么理解啊?void fun(char p1[],char p2[]){while(*p1) p1++;while(*p2){*p1=*p2;p1++;p2++;}*p1=0;}

来源:学生作业学帮网 编辑:学帮网 时间:2024/04/28 22:00:10

while(*p1) p1++; while(*p2) { *p1=*p2; p1++; p2++; } *p1=0; 这个怎么理解啊?
void fun(char p1[],char p2[])
{
while(*p1) p1++;
while(*p2)
{
*p1=*p2;
p1++;
p2++;
}
*p1=0;
}

首先明确两点:
1.p1,p2为指针变量,里面存放的是地址
2.*p1,*p2分别代表p1,p2指向的内存单元的内容
while(*p1)
p1++;
这里的*p1代表p1指向的内存单元的字符
等价于while(*p1 != '\0')
p1++,指向与它 相邻 的下一个存储单元