在C語言中,無法直接返回一個(gè)數(shù)組,但是可以通過返回對(duì)應(yīng)類型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長度的整型動(dòng)態(tài)數(shù)組,其長度用參數(shù)傳入,并將結(jié)果返回。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供喀左網(wǎng)站建設(shè)、喀左做網(wǎng)站、喀左網(wǎng)站設(shè)計(jì)、喀左網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、喀左企業(yè)網(wǎng)站模板建站服務(wù),10年喀左做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
注意C/C++不能直接返回一個(gè)數(shù)組。這是由于在C/C++中,數(shù)組不是一種類型,因此不能被直接返回。在C/C++中,一般有兩種方法來返回一個(gè)數(shù)組。
數(shù)組在作為函數(shù)返回值或者函數(shù)參數(shù)時(shí),實(shí)際上只作為指針來返回或者傳遞的。因此返回值用指針數(shù)據(jù)類型。比如下面的代碼:int g_a[4] = {1,2,3,4};int * retn_arrary() //返回值用指針類型即要。
我們首先定義一個(gè)二級(jí)指針和一個(gè)行列變量[int ** array,row,column;]。然后我們編寫進(jìn)入行和列的語句,代碼如圖所示。接下來我們可以用一維數(shù)組打開一維一維數(shù)組。
函數(shù)返回值一般為一個(gè)值,現(xiàn)在你要返回?cái)?shù)組,那么你可以在程序中定義全局?jǐn)?shù)組,或者你通過傳指針的方式傳過來數(shù)組參數(shù),在函數(shù)中更改了數(shù)組的值后又把數(shù)組首地址返回去就可以用了。
不能直接返回一個(gè)數(shù)組,但是可以用其他方式實(shí)現(xiàn)類似功能。方法1:利用全局變量 分析:全局變量作為C語言的一個(gè)知識(shí)點(diǎn),雖然我們都了解它的特點(diǎn),但在實(shí)際教學(xué)過程中應(yīng)用得并不是很多。
C/C++不能直接返回一個(gè)數(shù)組。這是由于在C/C++中,數(shù)組不是一種類型,因此不能被直接返回。在C/C++中,一般有兩種方法來返回一個(gè)數(shù)組。
我們首先定義一個(gè)二級(jí)指針和一個(gè)行列變量[int ** array,row,column;]。然后我們編寫進(jìn)入行和列的語句,代碼如圖所示。接下來我們可以用一維數(shù)組打開一維一維數(shù)組。
由于C/C++是允許返回結(jié)構(gòu)體的,可以定義一個(gè)結(jié)構(gòu)體模板,把數(shù)組作為成員安排在其中,函數(shù)中臨時(shí)聲明結(jié)構(gòu)體變量,操作其中的數(shù)組;完畢后返回結(jié)構(gòu)體變量,在主調(diào)函數(shù)中用同類型的結(jié)構(gòu)體變量接收就可間接實(shí)現(xiàn)“返回一個(gè)數(shù)組”。
1、我們首先定義一個(gè)二級(jí)指針和一個(gè)行列變量[int ** array,row,column;]。然后我們編寫進(jìn)入行和列的語句,代碼如圖所示。接下來我們可以用一維數(shù)組打開一維一維數(shù)組。
2、c語言沒有直接讀取返回?cái)?shù)組的函數(shù)。看你問題里文件內(nèi)容格式是:一行一個(gè)字符串回車換行。那么,用fgets一次讀一行,你寫循環(huán)調(diào)用這個(gè)fgets函數(shù)把讀取的值放在數(shù)組里。
3、你想返回一個(gè)數(shù)組,因?yàn)槟阍谝粋€(gè)函數(shù)內(nèi)創(chuàng)建了數(shù)組,屬于局部變量,所以他在stack部分,而stack部分是用后類似于銷毀的,你返回的地址類似于一塊垃圾的地址,所以編譯警告。