//by referance(引用传递的方式)值改变
#include<iostream>
using namespace std;
void swap(int &a,int &b)//交换的是&a和&b
{
int c;
c=a;
a=b;
b=c;
}
int main()
{
int a=2,b=3;
cout<<"a="<<a<<" "<<"b="<<b<<endl;
swap(a,b);
cout<<"a="<<a<<" "<<"b="<<b<<endl;
return 0;
}
a=2 b=3
a=3 b=2
//by value (值传递)值不变
#include<iostream>
using namespace std;
void swap(int a,int b)//此处a,b.是原a,b的副本,此处的变化不影响原A,B
{
int c;
c=a;
a=b;
b=c;
}
int main()
{
int a=2,b=3;
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
swap(a,b);
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
return 0;
}
a=2 b=3
a=2 b=3
//by point (指针传递)改变只针对间接引用,值改变
#include<iostream>
using namespace std;
void swap(int *a,int *b)//交换的是变量a的地址
{
int *c;
c=a;
a=b;
b=c;
}
int main()
{
int a=2,b=3;
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
swap(a,b);
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
return 0;
}
a=2 b=3
a=3 b=2
#include<iostream>
using namespace std;
void swap(int *a,int *b)//*a的值就是&a,a所在的地址发生变化,
{ // 自然a,b,都不再是原来的值
int c;
c=*a;
*a=*b;
*b=c;
}
int main()
{
int a=2,b=3;
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
swap(&a,&b);
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
return 0;
}
a=2 b=3
a=3 b=2
#include<iostream>
using namespace std;
void swap(int *x,int *y)//此处交换的是 x,y对与a,b,的指向关系,不改变a,b的值
{
int *c;
c=x;
x=y;
y=c;
}
int main()
{
int a=2,b=3;
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
swap(&a,&b);
cout<<"a="<<a<<" "<<"b="<<b<<" "<<endl;
return 0;
}
//by referance(引用传递的方式)值改变
#include<io