scanf(“%d%d”, &a,&b);
if(a>b)
swap(a, b);
printf(“%d\t %d”, a,b);
思考:为什么 a,b 的值没有交换?
答:
修改后的函数为
#include<stdio.h>
void s &x, int &y)
int temp;
temp=x;
x=y;
y=temp;
void main()
int a,b;
scanf("%d%d",&a,&b);
s); //if 语句被去掉//
printf("%d\t %d\n", a,b);
因为调用函数中改变的是形参而非实参,加上&,其意义是改
变实参的地址。
If 语句中,只有当 a>b 时才交换 a,b 的值 去掉后 在任何
情况下都交换 a,b 的值