编写程序实现两个数的交换,例如输入3和4,存放a和b中,交换后,输出a和b的值为4和3。同时声明一个传值的和一个传地址的交换函数,对比一下执行效果,是否都能实现两个数的交换。
如果不用指针是否可以应用
使用传值的方法是无法交换两个数的值,可自行验证。
#include<stdio.h>
void swap1(int *p1,int *p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp;
}
void swap2(int a,int b)
{
int temp=a;
a=b;
b=a;
}
int main()
{
int a,b,*p1,*p2;
p1=&a;
p2=&b;
scanf("%d%d",&a,&b);
swap2(a,b);
printf("%d %d\n",a,b);
swap1(p1,p2);
printf("%d %d",a,b);
return 0;
}
不用指针就用数组吧,但是c++可以用引用,我写了一篇博客,在主页第一个,可以看看