- 实例要求
- 封装自定义函数,实现两个整形变量数据的交换;
- 调用并测试;
- 实例分析:
- 值传递在这里行不通,原因是:形参只是将实参的值保存了一份,在函数内部,无论如何更改形参,实参都不会发生改变,原因是:形参和实参不在同一块内存空间;
- 故只能使用地址传递,原因是:在函数中需要修改实参;
- 代码如下:
#include<stdio.h>
void my_swap(int *x,int *y){
int temp = *x;
*x = *y;
*y = temp;
}
int main(int argc, const char *argv[])
{
int a = 0;
int b = 0;
printf("请输入a和b的值\n");
scanf("%d%d",&a,&b);
printf("交换前\n");
printf("a = %d,b = %d\n",a,b);
my_swap(&a,&b);
printf("交换后\n");
printf("a = %d,b = %d\n",a,b);
return 0;
}
请输入a和b的值
120 234
交换前
a = 120,b = 234
交换后
a = 234,b = 120