你用的是值傳遞,就是說你把主函數(shù)中數(shù)組的值賦給了被調(diào)用函數(shù)中,這個值就給了被調(diào)用函數(shù)中的另一個變量。當然你在被調(diào)用函數(shù)中是無法改變主函數(shù)中的數(shù)組的。
創(chuàng)新互聯(lián)服務(wù)項目包括敖漢網(wǎng)站建設(shè)、敖漢網(wǎng)站制作、敖漢網(wǎng)頁制作以及敖漢網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,敖漢網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到敖漢省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
你如果想要在被調(diào)用函數(shù)中改變主函數(shù)中數(shù)組的值,那么你要用地址傳遞,就是把你的主函數(shù)中數(shù)組的地址傳給被調(diào)用函數(shù),那么,被調(diào)用函數(shù)就直接操作這個地址中的值,也就改變了主函數(shù)中的數(shù)組的值。
C語言中的任何函數(shù)形參都是值傳遞。所謂引用傳遞,不過是指針的值傳遞而已。
你的函數(shù)做的工作只是交換函數(shù)中的兩個臨時變量a和b的值,結(jié)果不會影響到外部的實參pa和pb。如果想要交換兩個指針的值,你的形參應(yīng)該為兩個二級指針。
#includestdio.h
char?*fun(char?*x,char?*y)
{
printf("%p?%p\n",x,y);
x=y;
printf("%p?%p\n",x,y);
return?x;? ? ? ? //此處返回地址就可以了;
}
int?main(void)
{
char?s[]="abc";
char?*p,*q;
p=NULL;
q=s;
printf("%p?%p\n",p,q);
p=fun(p,q);? ? ? ? //將fun函數(shù)返回的地址賦值給P就可以了
printf("%p?%p\n",p,q);
return?0;
}