尝试编写用指针作为参数的程序完成变量a与变量b中数据的交换
要求:
(1)数据的交换由函数来完成
(2)用指针作为函数参数
程序:
#include<stdio.h>
int trans(int *a,int *b);
void main()
{
int *a1,*b1;
int a,b;
a=1;b=2;
a1=&a;b1=&b;
printf("未换时a=%d,b=%d\n",a,b);
trans(a1,b1);
printf("在trans函数中交换后的main中a=%d,b=%d\n",a,b);
}
int trans(int *a,int *b)
{
int t;
t=*a;*a=*b;*b=t;
printf("trans函数中*a=%d,*b=%d\n",*a,*b);
return 0;
}
运行结果:
未换时a=1,b=2
trans函数中*a=2,*b=1
在trans函数中交换后的main中a=2,b=1
Press any key to continue
和用a和b作为实参不同,以指针做实参,传递之后在自定义函数中直接更改a与b所在地址的值,也就是说,影响到了主函数的数据
希望大佬指出错误⸜₍๑•⌔•๑ ₎⸝