在C/C++中,一般有兩種方法來返回一個(gè)數(shù)組。
創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
函數(shù)返回值一般為一個(gè)值,現(xiàn)在你要返回?cái)?shù)組,那么你可以在程序中定義全局?jǐn)?shù)組,或者你通過傳指針的方式傳過來數(shù)組參數(shù),在函數(shù)中更改了數(shù)組的值后又把數(shù)組首地址返回去就可以用了。
首先,C/C++只能返回?cái)?shù)組的指針而不能返回整個(gè)數(shù)組。即使返回?cái)?shù)組的指針,但如果函數(shù)中的數(shù)組是自動(dòng)性質(zhì),那將是危險(xiǎn)的。這是比較正宗的表述。如果確實(shí)需要從函數(shù)中返回自動(dòng)性質(zhì)的數(shù)組的全部元素值,有沒有辦法呢?有。
注意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() //返回值用指針類型即要。
數(shù)組不用return,數(shù)組在函數(shù)中改變是改變的實(shí)參。因?yàn)閿?shù)組是地址。
你想返回一個(gè)數(shù)組,因?yàn)槟阍谝粋€(gè)函數(shù)內(nèi)創(chuàng)建了數(shù)組,屬于局部變量,所以他在stack部分,而stack部分是用后類似于銷毀的,你返回的地址類似于一塊垃圾的地址,所以編譯警告。
函數(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ù)組。
由于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ù)組”。
我們首先定義一個(gè)二級指針和一個(gè)行列變量[int ** array,row,column;]。然后我們編寫進(jìn)入行和列的語句,代碼如圖所示。接下來我們可以用一維數(shù)組打開一維一維數(shù)組。
不能夠返回整個(gè)數(shù)組,只能返回?cái)?shù)組中的某個(gè)值。如果數(shù)組在函數(shù)內(nèi)部定義,也不能直接返回?cái)?shù)組名(臨時(shí)變量在函數(shù)結(jié)束時(shí)會(huì)釋放)。一般寫程序不會(huì)把數(shù)組作為返回值返回,想要返回整個(gè)數(shù)組,可以用指針來實(shí)現(xiàn)。