改正程序中的错误,并说明swap不能实现两数交换的原因正确的程序输出: a=20,b=10(c语言)

#include<stdio.h>
void swap(int *pa,int *pb);
int main()
{
inta=10,b=20;
swap(a,b);
printf("a=%d,b=%d\n",a,b);

return 0;
}

void swap(int *pa,int *pb)
{int *t;
t=pa,pa=pb,pb=t;
}

#include<stdio.h>
void swap(int *pa,int *pb);
int main()
{
int a=10,b=20;
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);

return 0;
}

void swap(int *pa,int *pb)
{int t;
t=*pa,*pa=*pb,*pb=t;
}
之前不能交换,是因为交换的是形参,而不是实参,实参&a和&b的值没有改变
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网