#includevoidfun1(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)對(duì)與第一個(gè)fun1()函數(shù)為什么他們的值沒(méi)有發(fā)生改變呢?我的理解是,fun()函數(shù)中是a,b的地址調(diào)換了應(yīng)該是改變了值才對(duì)應(yīng)該是2010,但是他們沒(méi)有改變。(2)對(duì)與第二個(gè)fun2()函數(shù)*temp,*a,*b他們是指針變量所指向的值發(fā)生變化,應(yīng)該不會(huì)影響實(shí)參i,j吧但是和我想的不一樣。(3)對(duì)與第三個(gè)fun3()函數(shù)為什么就改變了呢?*/
用指針作為變量什么時(shí)候可以改變實(shí)參
Qyouu
2019-05-22 15:47:02