傳值調(diào)用:
[ 適用于外部函數(shù)返回?cái)?shù)值給主函數(shù),但不通過外部函數(shù)改變主函數(shù)變量的值]
如:輸出了兩個(gè)數(shù)的大值,代碼如下圖。
分析:MAX函數(shù)輸出大值返回給主函數(shù),主函數(shù)執(zhí)行printf語句直接打印,并沒有通過MAX函數(shù)改變主函數(shù)的變量,只是返回了一個(gè)數(shù)值給主函數(shù),所以適用于傳值調(diào)用的方法。
傳址調(diào)用:
[適用于外部函數(shù)直接改變主函數(shù)變量的數(shù)值]
如:將a、b兩個(gè)變量的數(shù)值交換,代碼如下圖。
分析:swap函數(shù)直接通過變量a、b的地址對(duì)主函數(shù)的變量a、b的數(shù)值進(jìn)行控制并交換。以實(shí)現(xiàn)通過外部函數(shù)swap改變主函數(shù)的變量,所以適用于傳址調(diào)用的方法。
為什么會(huì)存在傳址調(diào)用呢?
當(dāng)需要通過外部函數(shù)改變主函數(shù)的變量時(shí),如:面對(duì)問題“將a、b兩個(gè)變量的數(shù)值交換”時(shí)。若使用傳值調(diào)用,代碼如下圖。
以上代碼工作原理:相當(dāng)于將變量a、b的數(shù)值拷貝一份,然后外部函數(shù)的變量pa、pb開辟出內(nèi)存來接收拷貝出來的a、b數(shù)值,然后外部函數(shù)將拷貝得來的數(shù)值進(jìn)行交換,然而外部函數(shù)的變量pa、pb與主函數(shù)的變量a、b沒有任何關(guān)聯(lián),所以主函數(shù)的a、b數(shù)值并沒有得到交換。代碼運(yùn)行結(jié)果如下。
可以看出a、b數(shù)值并沒有得到交換。
若使用傳址調(diào)用的方法解決a、b數(shù)值交換問題時(shí),代碼如下圖。
以上代碼工作原理:通過地址,使外部函數(shù)變量pa、pb與主函數(shù)變量a、b建立關(guān)系,實(shí)現(xiàn)外部函數(shù)改變主函數(shù)的變量。主函數(shù)將變量a、b的地址傳入外部函數(shù)變量pa、pb中,外部函數(shù)通過地址找到主函數(shù)變量a、b的位置并直接對(duì)主函數(shù)變量a、b的值進(jìn)行交換。代碼運(yùn)行結(jié)果如下。
可以看到使用傳址調(diào)用的方式成功使a、b的數(shù)值得到交換。
總的來說:判斷何時(shí)使用傳值調(diào)用,何時(shí)使用傳址調(diào)用時(shí),關(guān)鍵要看是否需要使用外部函數(shù)對(duì)主函數(shù)的變量進(jìn)行操作。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:C語言中函數(shù)調(diào)用的兩種方式——傳值調(diào)用、傳址調(diào)用-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://chinadenli.net/article4/djjdie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、服務(wù)器托管、網(wǎng)站收錄、電子商務(wù)、網(wǎng)站策劃、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容