快生活 - 生活常识大全

输入两个整数实现两个数的交换


  错误方法一:
  基本上,想到两个数交换
  就会使用:
  #include<iostream></iostream>
  using namespace std;
  int swap(int a,int b){
  int t=a;
  a=b;
  b=t;
  }
  int main(){
  cout&lt;&lt;swap(1,2)&lt;&lt;endl;
  }
  结果是错的:
  解析:
  正确方法2:
  采用指针
  #include<iostream></iostream>
  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&lt;&lt;"input 2 num:"&lt;&lt;endl;
  cin&gt;&gt;x&gt;&gt;y;
  swap(&amp;x,&amp;y);
  cout&lt;&lt;x&lt;&lt;" "&lt;&lt;y&lt;&lt;endl;
  }
  陷阱3:
  int swap(int *a,int *b){
  int *t=*a;
  *a=*b;
  *b=*t
  }
  这种写法是错误的!
  正确的改写:
  写法4:
  引用类型:
网站目录投稿:尔青