<span style="font-size:18px;">#include<stdio.h> //传址解决了以下的问题,临时拷贝的是主函数实参的地址,所以也交换了空间的内容
void swap(int *m,int *n)
{
int tmp=*m;
*m=*n;
*n=tmp;
}
int main()
{
int a=20;
int b=10;
if(a>b)
swap(&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;
}
#include<stdio.h> //参数传值时,做了一份临时拷贝,从函数出来形参所开辟的空间被销毁
void swap(int m,int n)//所以值交换不了,对主函数中实参没有作用,俩者作用空间不同
{
int tmp=m;
m=n;
n=tmp;
}
int main()
{
int a=20;
int b=10;
if(a>b)
swap(a,b);
printf("%d %d\n",a,b);
return 0;
}</span>
传值与传址的区别
最新推荐文章于 2022-11-27 21:36:41 发布