{
char*s;
s = s1;
s1 = s2;
s2 = s;
}
int main()
{
char c[] = "teacher";
char d[] = "student";
char* e = c;
char* f = d;
const char* i = "teacher";
const char* j = "student";
swap(e, f);
cout << c << d << endl;
swap(c, d);
cout << c << d << endl;
swap(i, j);
cout << i << j << endl;
return 0;
}
studentteacher
studentteacher
char数组不能直接用=赋值。
交换的时候需要用临时变量进行拷贝
void swap(char* s1,char* s2)
{
char tmp[100]={0};
memcpy(tmp,s1,strlen(s1));
memset(s1,0,strlen(s1));
memcpy(s1,s2,strlen(s2));
memset(s2,0,strlen(s2));
memcpy(s2,tmp,strlen(tmp));
}
有啥问题啊?
swap(e, f);
cout << c << d << endl;
你交换的是e,f,输出的是 c和d。这时候c和d的值并没有动啊。你得输出e和f才变啊