1、同樣的道理,想要返回字符串,只能把內(nèi)容放在安全的地方,也就是動態(tài)內(nèi)存,然后把該內(nèi)存對應(yīng)的地址返回就可以,就好比你把一個人的電話號碼告訴另一個人,然后把你手機(jī)上的刪除,另一個人也不受影響。
網(wǎng)站設(shè)計、成都網(wǎng)站制作的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗。創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務(wù)。
2、也就是說使用結(jié)構(gòu)體的話,你用的字符串是外部變量(這自然是可以用的),只不過它的值等于函數(shù)內(nèi)部那個已經(jīng)被釋放的局部變量的值。
3、在函數(shù)中定義一個指針,注意在定義在棧上(就是用new定義的),如定義指向一個長度為5的int型數(shù)組的指針: int *p = new int[sizeof(int) * 5];然后讓這個指針指向你要返回的數(shù)組的首地址,即數(shù)組名。
4、函數(shù)直接返回一個指針類型即返回地址。C語言屬于高級編程語言。在C語言中一個函數(shù)不能返回局部地址即指針。
1、的意思完全不同了。fn_pointer 將是一個函數(shù)名, 其返回值為 int 類型的指針。2:函數(shù)指針變量 在C語言中規(guī)定,一個函數(shù)總是占用一段連續(xù)的內(nèi)存區(qū), 而函數(shù)名就是該函數(shù)所占內(nèi)存區(qū)的首地址。
2、因為mx你聲明有返回值的,所以在main里再聲明一個變量如 int b 然后 b=mx(15);coutb aendl;C語言規(guī)定,不帶括號的函數(shù)都返回函數(shù)的地址。相當(dāng)于指針了,如mx就相當(dāng)于指針了。
3、函數(shù)返回值的意思是將函數(shù)實現(xiàn)的結(jié)果返回給調(diào)用者。按標(biāo)準(zhǔn)來說,C的main函數(shù)是需要有返回值的。標(biāo)準(zhǔn)中main函數(shù)返回類型是int的,所以需要一個返回值。但是由于歷史原因,很多地方可以看到?jīng)]有返回值的main。
4、但是求兩個數(shù)的最大值函數(shù)INT MAX(INT A, INT B)的返回值就可以是你求的最大的值。int max(int a, intb){ if(ab){ return a;} else { return b;} } 其中return返回的值就是函數(shù)的返回值。
int * scanffile(FILE *fp,int n){ int i;static int array[10]; //因為array是局部變量,隨scanffile()函數(shù)的結(jié)束,該內(nèi)存被釋放,因此,你在之后得不到相應(yīng)的數(shù)據(jù)了。
在C語言中,無法直接返回一個數(shù)組,但是可以通過返回對應(yīng)類型指針的方式,返回數(shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個函數(shù),申請一定長度的整型動態(tài)數(shù)組,其長度用參數(shù)傳入,并將結(jié)果返回。
調(diào)用完函數(shù)還在,而你返回了那個堆上數(shù)組的首地址,這樣就沒問題了。用完free(array);樓上用static不推薦,用static的話會在整個程序的run time運行時都占用空間。而是用malloc,動態(tài)申請釋放更合理。
C語言支持一維數(shù)組和多維數(shù)組。如果一個數(shù)組的所有元素都不是數(shù)組,那么該數(shù)組稱為一維數(shù)組。在C語言中使用數(shù)組必須先進(jìn)行定義,一維數(shù)組的定義方式為:類型說明符; 數(shù)組名 ;[常量表達(dá)式]。