33,311
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
void swap(char *p1,char *p2)
{
char temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main ()
{
char *p="a";
char *q="b";
char a[2]="a";
char b[2]="b";
// swap(p,q);
swap(a,b);
cout<<a<<endl<<b<<endl<<p<<endl<<q;
return 0;
}
#include<iostream>
#include<string.h>
using namespace std;
// 使用这个函数也可以 const 修饰调用的时候不修改指针指向的空间
// 只是交换指针指向的地址
void swap(const char* p1, const char* p2)
{
const char* t = p1;
p1 = p2;
p2 = t;
}
int main()
{
const char* p = "a";
const char* q = "b";
swap(p, q);
cout << p << endl << q;
return 0;
}
#include<iostream>
#include<string.h>
using namespace std;
void swap(char* p1, char* p2)
{
char temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main()
{
char* p = new char[10]; // "a";
char* q = new char[10]; // "b";
strcpy(p, "a");
strcpy(q, "b");
swap(p, q);
cout << p << endl << q;
return 0;
}
如果使用指针,就应该使用 new 分配内存,这样指针指的不是常量,而可修改内存空间,就可以正确使用