1、实参不改变
void swap(int m, int n)
{ int t;
t = m; m = n; n= t;
}
int main()
{ int a = 5, b = 3;
swap(a,b); cout << a <<' '<< b;
return 0;
}
输出结果:5 3
此方法只交换了形参m,n的值,对实参a,b没影响。
2、实参发生改变
a)参数为指针变量
void swap(int *m, int *n)
{int t;
t = *m; *m = *n; *n = t;
}
int main()
{int a = 5, b = 3,*p1,*p2;
p1 = &a;
p2 = &b;
swap(p1,p2); cout << a <<' '<< b;
return 0;}
输出结果