形參的改變無法影響到實(shí)參,是我開始以為的。后來發(fā)現(xiàn)用指針變量可以改變實(shí)參。#include#includevoidfun(int*a,int*b){int*c;c=a;a=b;b=c;}voidfun1(int*a,int*b){int*c;*c=*a;*a=*b;*b=*c;}intmain(){intx=3,y=5,*p=&x,*q=&y,*k=&x,*z=&y;fun(p,q);printf("%d,%d\n",*p,*q);fun1(k,z);printf("%d,%d\n",*k,*z);//fun(&x,&y);printf("%d,%d\n",*p,*q);return0;}這段代碼輸出3,53,3;首先我認(rèn)為,在main()中,p,q獲得了整形x,y的地址。進(jìn)入fun()函數(shù)后,a,b,c交換的a,b的地址應(yīng)該p,q的地址也要變化,因此我錯(cuò)誤的認(rèn)為輸出5,3至于進(jìn)入fun1()函數(shù)后,是指針變量的值互換應(yīng)該不會(huì)改變我錯(cuò)誤的認(rèn)為應(yīng)該輸出3,5.請(qǐng)您幫我指導(dǎo)下,詳細(xì)點(diǎn)。否則我可能不懂。謝謝您
關(guān)于形參和實(shí)參,改變實(shí)參問題
慕勒3428872
2019-05-22 16:47:09