比如交换ab两个数的值
#include<iostream>
using namespace std;
int main(){
int a = 1;
int b = 2;
int c = a;
a = b;
b = c;
cout << a << ' ' << b ;
return 0;
}
如果将交换部分代码封装成函数,放到主函数外,如何实现?
#include<iostream>
using namespace std;
void swap(int a,int b){
int c = a;
a = b;
b = c;
}
int main(){
int a = 1;
int b = 2;
swap(a,b);
cout << a << ' ' << b ;
return 0;
}
上面代码运行结果是1 2,说明ab实际上并没有交换,因为ab传进swap函数是复制一份之后传进去的,所以想要调用函数交换ab,只能运用指针。
#include<iostream>
using namespace std;
void swap(int *p,int *q){
int c = *p;
*p = *q;
*q = c;
}
int main(){
int a = 1;
int b = 2;
int *p,*q;
p = &a;
q = &b;
swap(p,q);
cout << a << ' ' << b ;
return 0;
}
这样就可以了
也可以直接用C++内部封装好的swap函数
#include<bits/stdc++.h>
using namespace std;
int main(){
int a = 1;
int b = 2;
swap(a,b);
cout << a << ' ' << b ;
return 0;
}