i=20-lb;str1[i]!=\0i++)//輸出str2的后面一部分 printf(%c,str1[i]);}//字符串a(chǎn)不需要返回,因為對a的操作就是對str1的操作,二者同地址,只是名稱不同。
創(chuàng)新互聯(lián)網(wǎng)站建設服務商,為中小企業(yè)提供成都網(wǎng)站設計、網(wǎng)站建設、外貿(mào)網(wǎng)站建設服務,網(wǎng)站設計,綿陽服務器托管等一站式綜合服務型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出創(chuàng)新互聯(lián)。
在上面的例子中,如果老師的函數(shù)要求是按引用傳遞,即老師說:“用你自己的材料做!”學生調(diào)用函數(shù)時,就不拷貝材料,直接用自己的那份材料。
但是你不能訪問指針指向的內(nèi)存空間,因為它隨著函數(shù)結(jié)束被釋放了。這是C語言的參數(shù)及返回值傳遞機制,也就是值傳遞。其實C++使用string也就是把字符串封裝了,所以好用,但函數(shù)傳遞的本質(zhì)還是一樣。
C語言返回值不支持返回數(shù)組,不過可以通過返回指針類型,用以替代數(shù)組。在C語言中,數(shù)組大多數(shù)時候是可以用指針替代的。
在void strcat()的strcat前添加*,表示返回char 指針。strcat()應該返回str1,即 return str1。str1是連接的結(jié)果,調(diào)用者有責任確保str1數(shù)組空間足夠大,以便在其尾部添加str2后,不會覆蓋其他數(shù)據(jù)空間。
在C語言中,無法直接返回一個數(shù)組,但是可以通過返回對應類型指針的方式,返回數(shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個函數(shù),申請一定長度的整型動態(tài)數(shù)組,其長度用參數(shù)傳入,并將結(jié)果返回。
注意C/C++不能直接返回一個數(shù)組。這是由于在C/C++中,數(shù)組不是一種類型,因此不能被直接返回。在C/C++中,一般有兩種方法來返回一個數(shù)組。
你想返回一個數(shù)組,因為你在一個函數(shù)內(nèi)創(chuàng)建了數(shù)組,屬于局部變量,所以他在stack部分,而stack部分是用后類似于銷毀的,你返回的地址類似于一塊垃圾的地址,所以編譯警告。
C語言中實現(xiàn)函數(shù)返回字符串,首先要確定函數(shù)返回的字符串地址的來源,一般分為四種方式:函數(shù)形參帶進來的地址。靜態(tài)局部變量地址。局部變量地址,必須在函數(shù)中用malloc函數(shù)進行地址分配。采用全局變量地址。
可以是參數(shù)字符串,全局變量,靜態(tài)局部變量,或者動態(tài)分配的內(nèi)存 比如 char *my_str_cpy(char *d, char *s){ char *p=d; while(*p++=*s++); return d;//返回參數(shù)字符串。
C語言實現(xiàn)返回一個字符串數(shù)組,是沒有這種功能的,但是可以用指向數(shù)組的指針來實現(xiàn):解釋:char **p 這個p就是指向數(shù)組的指針,它指向一個數(shù)組的起始地址. 想要引用里面的數(shù)組時,直接使用p[i] 即可。
可以,但是它的返回其實和你返回return 1結(jié)果是一樣的,因為return的結(jié)果只有真和假,也就是1和0,666其實就相當于1,相當于返回真。
網(wǎng)頁標題:c語言函數(shù)字符串怎么返回 c語言返回值為字符串的函數(shù)
URL標題:http://muchs.cn/article36/depissg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作、網(wǎng)站內(nèi)鏈、定制網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)