完成a和b两个存储单元内容的交换。
解决1:使用普通变量做函数的参数,传值进行函数调用。
#include <stdio.h>void swap(int m,int n)
{int temp;temp = m;m = n;n = temp;
}
//主函数
int main()
{int a = 5,b = 10;printf("a = %d,b = %d",a,b);swap(a,b);//值传递printf("a = %d,b = %d",a,b);return 0;
}
值传递并未解决我们的问题。
解决2:使用指针变量做函数的参数,传地址进行函数调用。
#include <stdio.h>
void swap(int *m,int *n)
{int temp;temp = *m;*m = *n;*n = temp;
}int main()
{int a = 5,b = 10;printf("a = %d,b = %d",a,b);swap(&a,&b);//地址传递printf("a = %d,b = %d",a,b);return 0;
}
顺利解决问题。