指針可以返回,但是要注意函數(shù)內(nèi)部的數(shù)組用指針?lè)祷睾螅搅撕瘮?shù)外面,這個(gè)數(shù)組已經(jīng)被釋放了。所以是個(gè)野指針,用了就死機(jī)!這種情況可以動(dòng)態(tài)申請(qǐng)一段內(nèi)存,比如malloc函數(shù),用完后再用free函數(shù)釋放內(nèi)存。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了金湖免費(fèi)建站歡迎大家使用!
首先,你不應(yīng)該返回局部變量的指針,因?yàn)榫植孔兞吭陔x開(kāi)函數(shù)后就會(huì)被銷毀。如果你想這樣返回一個(gè)數(shù)組的話,你應(yīng)該malloc出一個(gè)數(shù)組來(lái)返回。至于應(yīng)該return什么,return (malloc出來(lái)的那個(gè)指針)就可以了。
C語(yǔ)言屬于高級(jí)編程語(yǔ)言。在C語(yǔ)言中一個(gè)函數(shù)不能返回局部地址即指針。
C語(yǔ)言指向函數(shù)的指針承載的信息比較復(fù)雜,組織起來(lái)要素要寫全。
你把返回值寫成指針型就可以了,具體得看你參數(shù)是怎樣的,還有返回值是什么類型的指針:比如:int * scar(int )這個(gè)函數(shù)參數(shù)是一個(gè)整型,返回值是個(gè)整型指針。
按照這段代碼來(lái)說(shuō),int* 聲明的指針指向內(nèi)存中的一塊地址,而在這塊地址中存儲(chǔ)著一個(gè)整形數(shù)值。所以要返回這樣的值,也就相當(dāng)于是返回一個(gè)內(nèi)存地址。
1、方法2:傳遞數(shù)組指針 分析:在教學(xué)過(guò)程中,我們知道C語(yǔ)言函數(shù)參數(shù)的傳遞方式有值傳遞與地址傳遞。當(dāng)進(jìn)行值傳遞時(shí),主調(diào)函數(shù)把實(shí)參的值復(fù)制給形參,形參獲得從主調(diào)函數(shù)傳遞過(guò)來(lái)的值運(yùn)行函數(shù)。
2、在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。
3、首先,你不應(yīng)該返回局部變量的指針,因?yàn)榫植孔兞吭陔x開(kāi)函數(shù)后就會(huì)被銷毀。如果你想這樣返回一個(gè)數(shù)組的話,你應(yīng)該malloc出一個(gè)數(shù)組來(lái)返回。至于應(yīng)該return什么,return (malloc出來(lái)的那個(gè)指針)就可以了。
4、include stdio.hchar *get_str(void) //返回值類型為字符指針{ static char str[100]={0};//靜態(tài)變量初始化,只有在定義時(shí)這次完成,且初始化只執(zhí)行一次。
5、具體到這段代碼中,就是在Main中聲明int* tempA[10],把foo函數(shù)聲明為void foo(int* a[10]),調(diào)用時(shí)用foo(tempA),在foo函數(shù)中直接使用a[10]即可。
6、你想返回一個(gè)數(shù)組,因?yàn)槟阍谝粋€(gè)函數(shù)內(nèi)創(chuàng)建了數(shù)組,屬于局部變量,所以他在stack部分,而stack部分是用后類似于銷毀的,你返回的地址類似于一塊垃圾的地址,所以編譯警告。
首先,你不應(yīng)該返回局部變量的指針,因?yàn)榫植孔兞吭陔x開(kāi)函數(shù)后就會(huì)被銷毀。如果你想這樣返回一個(gè)數(shù)組的話,你應(yīng)該malloc出一個(gè)數(shù)組來(lái)返回。至于應(yīng)該return什么,return (malloc出來(lái)的那個(gè)指針)就可以了。
在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。
方法1:利用全局變量 分析:全局變量作為C語(yǔ)言的一個(gè)知識(shí)點(diǎn),雖然我們都了解它的特點(diǎn),但在實(shí)際教學(xué)過(guò)程中應(yīng)用得并不是很多。
((double (*)[row])matrix);里的[row]是一個(gè)變量,而指向數(shù)組的指針 double (*matrix)[ROW]里的ROW只能使用常量,所以這里也有一個(gè)錯(cuò)誤。
函數(shù)指針的數(shù)組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。
本文名稱:c語(yǔ)言函數(shù)返回指針技巧 c語(yǔ)言返回指針值的函數(shù)
網(wǎng)站地址:http://chinadenli.net/article15/dspgjdi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、建站公司、域名注冊(cè)、App開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(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)