c++函数传递指针问题
vs2005下编译运行.
简单的复制字符串的小程序:
#include<iostream>
using namespace std;
char* myStrcpy(char* s1,const char* s2);
int main()
{
char s1[50]="test";
char* s2="Hello";
cout<<"s2="<<s2<<endl;
cout<<"s1="<<myStrcpy(s1,s2)<<endl;
}
char* myStrcpy(char* s1,const char* s2)
{
char* s=s1;
while(*s++=*s2++);
return s1;
}//不明白这里为什么要把传递进来的s1赋给s再返回,结果正确,s1被赋值为Hello
如果将上面的函数myStrcpy改成
char* myStrcpy(char* s1,const char* s2)
{
while(*s1++=*s2++);
return s1;
}//这样s1的结果就是空字符串
请问这是为什么啊?还请大家指教!