#include<stdio.h>
/*
1、int a,int b是分配新的内存空间
2、swap1函数里的a,b变量的值被交换
*/
void swap1(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
/*
1、int *a,int *b是得到主函数x,y变量的地址,没有分配新的内存空间
2、swap2函数里的*a,*b值的交换,由于x,y的地址没有变化,只是交换地址里的数据
*/
void swap2(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void main(int argc,char* argv[ ])
{
int x = 10,y = 11;
swap1(x,y);
printf("x = %d,y = %d\n",x,y); //值没有交换
swap2(&x,&y);
printf("x = %d,y = %d\n",x,y); //值已经交换
}