关于下列代码中的自定的swap函数为什么没起上作用,x,y没交换为啥
#include <iostream.h>
#include <iomanip.h>
void output(int x)
{
cout<<setw(5)<<x;
}
void output(double x)
{
cout<<setw(5)<<x;
}
void output(char a)
{
cout<<setw(5)<<a;
}
int max(int a,int b)
{
int c;
c=a>b?a:b;
return c;
}
double max(double a,double b)
{
double c;
c=a>b?a:b;
return c;
}
char swap(char x,char y)
{
char *c,*d,k,f;
c=&x,d=&y;
f=*c;
k=*d;
x=k;
y=f;
return 0;
}
int main()
{
char a,b;
cin>>a>>b;
int c,d;
cin>>c>>d;
double e,f;
cin>>e>>f;
output(max(c,d));
output(max(e,f));
output(a);
output(b);
swap(a,b);
output(a);
output(b);
return 0;
}
望各位大神指教。thank you
[解决办法]
char * 地址类型或者 & 引用类型才可以改变
[解决办法]
char swap(char x,char y)
这个传入的是临时变量,里面的修改不改变外面的值
char swap(char &x,char &y)
这个是传入的引用,里面修改可以改变外面的值
char swap(char *x,char *y)
这个是传递指针,里面的修改可以改变外面的值