#include<stdio.h>
//错误的设计思路,只改变了x和y,没有对a和b的地址进行改变
//当实参传给形参时,形参只是实参的临时拷贝,形参是不会改变实参的
//使用指针实现实参改变
// void Swap1(int x,int y)
// {
// int tmp=0;
// tmp=x;
// x=y;
// y=tmp;
// }
void Swap2(int* pa, int* pb)
{
int tmp = 0;
tmp = *pa;
*pa = *pb;
*pb = tmp;
}
//(*p)++;//++优先级较高,会作用于p而非*p,所以要将*p括起来表示优先处理
int main()
{
int a = 10;
int b = 20;
printf("a=%d b=%d\n", a, b);
//调用Swap1:传值调用,不改变外部变量
//Swap1(a,b);
//调用Swap2:传址调用,改变外部变量
Swap2(&a, &b);
printf("a=%d b=%d\n", a, b);
return 0;
}