为什么重新定义一个指针r,指向p1+m-1就能够运行,但是这样就不行
#include <stdio.h>
#include <string.h>
int main()
{void copystr(char *,char *,int);
int m;
char str1[20],str2[20];
printf("input string:");
gets(str1);
printf("which character that begin to copy?");
scanf("%d",&m);
if (strlen(str1)<m)
printf("input error!");
else
{copystr(str1,str2,m);
printf("result:%s\n",str2);
}
return 0;
}
void copystr(char *p1,char *p2,int m)
{
char * r;
r = p1+m-1;
while (*r !='\0')
{*p2=*r;
r++;
p2++;
}
*p2='\0';
}```c