自己写的strcpy,得不到正确结果
char * strcopy2(char * szDst, const char * szSrc);
const char *ps="i'm source arden";
char *qs="";
int main ()
{
qs=strcopy2(qs,ps);
printf("ps is %s\n",ps);
printf("qs is %s\n",qs);
return 0;
}
char * strcopy2(char * szDst, const char * szSrc)
{
char * szTemp = szDst;
while (*szDst++ = *szSrc++);
*szDst = '\0';
return szTemp;
}
输出为:
ps is i'm source arden
qs is i'm source ardenH 7
但是我在调试时候在while循环中添加了一个printf,结果就正确了:
while (*szDst++ = *szSrc++){printf("\n");}
输出:
ps is i'm source arden
qs is i'm source arden
为什么呢?