首先,這個(gè)不是指針函數(shù) ,void *ptr(int * x,int * y ,int * z);才是指針函數(shù)。指針函數(shù)是函數(shù),只是函數(shù)返回的是個(gè)指針(地址)。

創(chuàng)新互聯(lián)公司是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),屏南網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:屏南等地區(qū)。屏南做網(wǎng)站價(jià)格咨詢(xún):18982081108
void swap(int p1,int p2){int p;p=p1;p1=p2;p2=p;} 只是交換了值而已。。同你的那個(gè),只是交換了pp2所代表的地址而已,真正的地址不會(huì)因此交換的。正道還是以改變實(shí)參指針變量所指變量的值 。沒(méi)辦法。
C所有的函數(shù)調(diào)用都是將實(shí)參的值“拷貝”給形參,所以指針也不例外。函數(shù)中改變形參指針的值改變的只是形參指針的指向,函數(shù)退出后都銷(xiāo)聲匿跡了,與實(shí)參指針無(wú)關(guān)。
4 所以,通常意義上函數(shù)內(nèi)部無(wú)法改變實(shí)參的指針。但是有一些技巧可以曲線(xiàn)完成你要的效果,例如實(shí)參是指針,其值是自身的地址。那么相當(dāng)與一個(gè)二級(jí)指針的訪(fǎng)問(wèn)。這樣就可以通過(guò)這種方式修改實(shí)參的指針。
s1,s2)中的s1,s2就相當(dāng)于上面那定義函數(shù)的x,y.而在指針中,char*s1,char*s其代表的就是首地址。所以交換的是兩個(gè)數(shù)組中第一個(gè)元素,即s1[0],s2[0],所以就是a和1交換了,其他的不變,按原來(lái)的輸出。
c語(yǔ)言中形參與實(shí)參的關(guān)系是:形參是實(shí)參的值副本。無(wú)論參數(shù)的類(lèi)型是什么,傳遞到子函數(shù)中的形參只是實(shí)參的值。所以,在改變形參變量自身的值時(shí),是與實(shí)參無(wú)關(guān)的。換句話(huà)說(shuō),形參的改變不會(huì)影響到實(shí)參。
進(jìn)入函數(shù)后,函數(shù)創(chuàng)建幾個(gè)空間給形參,再把實(shí)參數(shù)值拷過(guò)來(lái)。退出函數(shù)時(shí),把形參空間釋放,則影響不到實(shí)參。這就是值傳遞。
使用strcpy唄,反正你用gets讀入的,最后都會(huì)有\(zhòng)0吧。void swap(char *a,char *b){ char temp[20]; strcpy(temp, a); strcpy(a, b); strcpy(b, temp);}這樣試試。
1、我們提出的雙向傳遞是,通過(guò)把原來(lái)的當(dāng)做實(shí)參變量的地址當(dāng)做實(shí)參傳入函數(shù),在函數(shù)內(nèi)部通過(guò)修改指針形參指向的地址來(lái)把值傳遞出函數(shù);作為變量地址的實(shí)參依然不可能在函數(shù)內(nèi)部被修改。
2、函數(shù)實(shí)參與形參之間的數(shù)據(jù)傳遞方式是( 值傳遞)傳遞方式,在C語(yǔ)言中,數(shù)據(jù)傳遞方式有值傳遞和引用傳遞,值傳遞:傳值,實(shí)際是把實(shí)參的值賦值給行參,相當(dāng)于copy。那么對(duì)行參的修改,不會(huì)影響實(shí)參的值 。
3、你的第一個(gè)代碼,主函數(shù)里定義的a不會(huì)釋放,所以可以正常輸出;但第二個(gè)代碼中,shuru()函數(shù)返回a的地址后,a所占的空間被釋放,所以shuchu(x)是一個(gè)隨機(jī)值。改成全局變量吧。
4、當(dāng)進(jìn)行指針傳遞的時(shí)候,形參是指針變量,實(shí)參是一個(gè)變量的地址或者是指針變量,調(diào)用函數(shù)的時(shí)候,形參指向?qū)崊⒌牡刂罚?指針傳遞中,函數(shù)體內(nèi)可以通過(guò)形參指針改變實(shí)參地址空間的內(nèi)容。
當(dāng)前文章:c語(yǔ)言指針做實(shí)參函數(shù)調(diào)用 實(shí)參指針變量的值
URL鏈接:http://www.chinadenli.net/article4/dccipie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、微信小程序、企業(yè)建站、面包屑導(dǎo)航、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容