错误方法一:
基本上,想到两个数交换
就会使用:
#include
using namespace std;
int swap(int a,int b){
int t=a;
a=b;
b=t;
}
int main(){
cout<<swap(1,2)<<endl;
}
结果是错的:
解析:
正确方法2:
采用指针
#include
using namespace std;
//因为在swap函数里面 x,y 没有作用域
//*a *b 就延伸了这个作用域到了 x,y
int swap(int *a,int *b){
int t=*a;//*a指向的就是x 他就是x
*a=*b;
*b=t;
}
int main(){
int x,y;
cout<<"input 2 num:"<<endl;
cin>>x>>y;
swap(&x,&y);
cout<<x<<" "<<y<<endl;
}
陷阱3:
int swap(int *a,int *b){
int *t=*a;
*a=*b;
*b=*t
}
这种写法是错误的!
正确的改写:
写法4:
引用类型: