首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于下列代码中的自定的swap函数为什么没起上作用,x,y没交换为啥解决方法

2012-03-01 
关于下列代码中的自定的swap函数为什么没起上作用,x,y没交换为啥#include iostream.h#include iomanip.

关于下列代码中的自定的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)
这个是传递指针,里面的修改可以改变外面的值

热点排行