在C語(yǔ)言中,函數(shù)的參數(shù)不僅可以是整數(shù)、小數(shù)、字符等具體的數(shù)據(jù),還可以是指向它們的指針。用指針變量作函數(shù)參數(shù)可以將函數(shù)外部的地址傳遞到函數(shù)內(nèi)部,使得在函數(shù)內(nèi)部可以操作函數(shù)外部的數(shù)據(jù),并且這些數(shù)據(jù)不會(huì)隨著函數(shù)的結(jié)束而被銷(xiāo)毀。
像數(shù)組、字符串、動(dòng)態(tài)分配的內(nèi)存等都是一系列數(shù)據(jù)的集合,沒(méi)有辦法通過(guò)一個(gè)參數(shù)全部傳入函數(shù)內(nèi)部,只能傳遞它們的指針,在函數(shù)內(nèi)部通過(guò)指針來(lái)影響這些數(shù)據(jù)集合。
?舉一個(gè)典型的例子(交換兩個(gè)變量的值)當(dāng)你使用下面這種方法的時(shí)候會(huì)面臨如下問(wèn)題:
?你會(huì)發(fā)現(xiàn)沒(méi)有成功交換兩個(gè)變量的值,這是因?yàn)?put() 函數(shù)內(nèi)部的 a、b 和 main() 函數(shù)內(nèi)部的 a、b 是不同的變量,占用不同的內(nèi)存,它們除了名字一樣,沒(méi)有其他任何關(guān)系,put() 交換的是它內(nèi)部 a、b 的值,不會(huì)影響它外部(main() 內(nèi)部) a、b 的值?!?/p>
? 當(dāng)我們改用指針作為put函數(shù)參數(shù)的時(shí)候就能成功解決上面的問(wèn)題。它就是我們開(kāi)頭所說(shuō)的指針變量作(put)函數(shù)參數(shù)可以將(put)函數(shù)外部的地址傳遞到函數(shù)內(nèi)部,使得在函數(shù)內(nèi)部可以操作函數(shù)外部的數(shù)據(jù)
調(diào)用 put() 函數(shù)時(shí),將變量 a、b 的地址分別賦值給 p1、p2,這樣 *p1、*p2 代表的就是變量 a、b 本身,交換 *p1、*p2 的值也就是交換 a、b 的值。需要注意的是臨時(shí)變量 p,它的作用特別重要,因?yàn)閳?zhí)行*p1 = *p2;
語(yǔ)句后 a 的值會(huì)被 b 的值覆蓋,如果不先將 a 的值保存起來(lái)以后就找不到了。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
文章標(biāo)題:C語(yǔ)言---函數(shù)與指針-創(chuàng)新互聯(lián)
本文鏈接:http://redsoil1982.com.cn/article18/dissgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、用戶體驗(yàn)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站建設(shè)、微信公眾號(hào)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容