#include voidfun1(int*a,int*b);voidfun2(int*a,int*b);voidfun3(int*a,int*b);intmain(){inti=10,j=20,*x=&i,*y=&j;//fun1(x,y);printf("%d%d",*x,*y);输出1020//fun2(x,y);printf("%d%d",*x,*y);输出1010fun3(x,y);printf("%d%d",*x,*y);//输出2010return0;}voidfun1(int*a,int*b){int*temp;temp=a;a=b;b=temp;}voidfun2(int*a,int*b){int*temp;*temp=*a;*a=*b;*b=*temp;}voidfun3(int*a,int*b){inttemp;temp=*a;*a=*b;*b=temp;}/*(1)对与第一个fun1()函数为什么他们的值没有发生改变呢?我的理解是,fun()函数中是a,b的地址调换了应该是改变了值才对应该是2010,但是他们没有改变。(2)对与第二个fun2()函数*temp,*a,*b他们是指针变量所指向的值发生变化,应该不会影响实参i,j吧但是和我想的不一样。(3)对与第三个fun3()函数为什么就改变了呢?*/
潇湘沐
德玛西亚99
相关分类