在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類(lèi)型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。
建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁(yè)設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開(kāi)發(fā)技術(shù)和網(wǎng)頁(yè)設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)專(zhuān)業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作(企業(yè)站、成都響應(yīng)式網(wǎng)站建設(shè)、電商門(mén)戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!
在C/C++中,一般有兩種方法來(lái)返回一個(gè)數(shù)組。
我們首先定義一個(gè)二級(jí)指針和一個(gè)行列變量[int ** array,row,column;]。然后我們編寫(xiě)進(jìn)入行和列的語(yǔ)句,代碼如圖所示。接下來(lái)我們可以用一維數(shù)組打開(kāi)一維一維數(shù)組。
由于C/C++是允許返回結(jié)構(gòu)體的,可以定義一個(gè)結(jié)構(gòu)體模板,把數(shù)組作為成員安排在其中,函數(shù)中臨時(shí)聲明結(jié)構(gòu)體變量,操作其中的數(shù)組;完畢后返回結(jié)構(gòu)體變量,在主調(diào)函數(shù)中用同類(lèi)型的結(jié)構(gòu)體變量接收就可間接實(shí)現(xiàn)“返回一個(gè)數(shù)組”。
你想返回一個(gè)數(shù)組,因?yàn)槟阍谝粋€(gè)函數(shù)內(nèi)創(chuàng)建了數(shù)組,屬于局部變量,所以他在stack部分,而stack部分是用后類(lèi)似于銷(xiāo)毀的,你返回的地址類(lèi)似于一塊垃圾的地址,所以編譯警告。
在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類(lèi)型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。
ANSI C語(yǔ)言標(biāo)準(zhǔn),明確規(guī)定 數(shù)組類(lèi)型和函數(shù)類(lèi)型不可以做為返回值。解決這種返回值的方法是通過(guò)指針來(lái)間接返回,即使用數(shù)組指針和函數(shù)指針。這可以做為c語(yǔ)言引入指針的另一個(gè)理由。
不能夠返回整個(gè)數(shù)組,只能返回?cái)?shù)組中的某個(gè)值。如果數(shù)組在函數(shù)內(nèi)部定義,也不能直接返回?cái)?shù)組名(臨時(shí)變量在函數(shù)結(jié)束時(shí)會(huì)釋放)。一般寫(xiě)程序不會(huì)把數(shù)組作為返回值返回,想要返回整個(gè)數(shù)組,可以用指針來(lái)實(shí)現(xiàn)。
不能直接返回一個(gè)數(shù)組,但是可以用其他方式實(shí)現(xiàn)類(lèi)似功能。方法1:利用全局變量 分析:全局變量作為C語(yǔ)言的一個(gè)知識(shí)點(diǎn),雖然我們都了解它的特點(diǎn),但在實(shí)際教學(xué)過(guò)程中應(yīng)用得并不是很多。
數(shù)組在作為函數(shù)返回值或者函數(shù)參數(shù)時(shí),實(shí)際上只作為指針來(lái)返回或者傳遞的。因此返回值用指針數(shù)據(jù)類(lèi)型。比如下面的代碼:int g_a[4] = {1,2,3,4};int * retn_arrary() //返回值用指針類(lèi)型即要。
在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類(lèi)型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。
我們首先定義一個(gè)二級(jí)指針和一個(gè)行列變量[int ** array,row,column;]。然后我們編寫(xiě)進(jìn)入行和列的語(yǔ)句,代碼如圖所示。接下來(lái)我們可以用一維數(shù)組打開(kāi)一維一維數(shù)組。
ANSI C語(yǔ)言標(biāo)準(zhǔn),明確規(guī)定 數(shù)組類(lèi)型和函數(shù)類(lèi)型不可以做為返回值。解決這種返回值的方法是通過(guò)指針來(lái)間接返回,即使用數(shù)組指針和函數(shù)指針。這可以做為c語(yǔ)言引入指針的另一個(gè)理由。
分享文章:c語(yǔ)言函數(shù)能返回?cái)?shù)組嗎 c語(yǔ)言中函數(shù)能返回?cái)?shù)組嗎
URL標(biāo)題:http://jinyejixie.com/article38/dcjgcpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、定制開(kāi)發(fā)、軟件開(kāi)發(fā)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(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)