#include <stdio.h>
#include <vector>
using namespace std;
void NoChange(int a,int b){
int c;
c=a;
a=b;
b=c;
}
void StarChange(int* a,int* b){
int c;
c=*a;
*a=*b;
*b=c;
}
void AddrChange(int& a,int& b){
int c;
c=a;
a=b;
b=c;
}
void StarAddrChange(int* &a,int* &b){
int c;
c=*a;
*a=*b;
*b=c;
}
int main(){
int a=1,b=2;
NoChange(a, b);
printf("NoChange: a:%d b:%d\n",a,b);
a=1,b=2;
StarChange(&a, &b);
printf("StarChange: a:%d b:%d\n",a,b);
a=1,b=2;
AddrChange(a, b);
printf("AddrChange: a:%d b:%d\n",a,b);
}
结果是:
NoChange: a:1 b:2
StarChange: a:2 b:1 (参数传入时是参数的地址)
AddrChange: a:2 b:1
Program ended with exit code: 0