void fun(char p1[], char p2[])
{
while(*p1) p1++;
while(*p2)
{
*p1=*p2;
p1++;
p2++;
}
*p1=0;
//我认为这里写错了,应该是*p1 = '\0' 在字符串p1尾部加上字符串结束标志
}
这个函数的功能是连接字符串
while(*p1) //检查字符串p1是否为'\0',即到了字符串的结尾处
p1++; //如果不是的话,p1指向下一个字符
while(*p2) //检查字符串p2是否为'\0',即到了字符串的结尾处
{
*p1=*p2; //将p2的值连接到p1的最尾处
p1++; //p1指向下一个字符
p2++; //p2指向下一个字符
}
*p1='\0'; //为字符串p1加上'\0'字符串结束的标志
如果是p1 = 0; //打印出p1字符串的值的时候,会显示很多'烫'
如果楼主有不明白的地方,可以追问
首先明确两点:
1.p1,p2为指针变量,里面存放的是地址
2.*p1,*p2分别代表p1,p2指向的内存单元的内容
while(*p1)
p1++;
这里的*p1代表p1指向的内存单元的字符
等价于while(*p1 != '\0')
p1++,指向与它 相邻 的下一个存储单元
p1++的意思就是变量p1自加1,也就是自增1