錯(cuò)誤方法一: 基本上,想到兩個(gè)數(shù)交換 就會(huì)使用: #include<iostream> using namespace std; int swap(int a,int b){ int t=a; a=b; b=t; } int main(){ cout<<swap(1,2)<<endl; } 結(jié)果是錯(cuò)的: 解析: ![]() 正確方法2: 采用指針 #include<iostream> using namespace std; //因?yàn)樵趕wap函數(shù)里面 x,y 沒有作用域 //*a *b 就延伸了這個(gè)作用域到了 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 } 這種寫法是錯(cuò)誤的! 正確的改寫: ![]() 寫法4: 引用類型: ![]() |
|