亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言中函數返回字符串的四個方法

2020-02-24 14:25:13
字體:
來源:轉載
供稿:網友

C語言中函數返回字符串的四個方法,大家都清楚嗎?其實要確定這些來源對于初學者可能有點難度,那么今天武林技術頻道小編就給大家介紹C語言中函數返回字符串的四個方法吧!

在討論著四種方法之前,首先要對函數有一個簡單的認識,無論是在形實結合時,還是在return語句返回時,都有一個拷貝的過程。你傳進來的參數是個值,自然函數在工作之前要把這個值拷貝一份供自己使用,你傳進來的是個地址,函數也就會拷貝該地址供自己使用。同樣return返回時,如果返回一個值,函數會將該值拷貝一份以提供給主調函數使用,返回的是一個指針(也就是地址),自然拷貝的就是一個地址,供主調函數使用。

先給出一個錯誤的例子:

#include <stdio.h>#include <string.h>char * retstring();int main(){  char * name2;  name2 = retstring();  printf("%s/n",name2);  return 0;}char * retstring(){  char name[10];   strcpy(name,"漢青");  return name;}

編譯一下代碼,會發現提示一個警告,大概意思就是說返回了一個局部變量的地址。這個程序的輸出結果是不確定的,因為我們都知道,局部變量的生存期是就在塊內部,這里也就是在函數retstring()的內部,在main函數中,name的內存空間已經被回收。

所以不能返回一個自動變量的字符串。。。

下面給出四種返回字符串的方法:

1、 將字符串指針作為函數參數傳入,并返回該指針。

2、 使用malloc函數動態分配內存,注意在主調函數中釋放。

3、 返回一個靜態局部變量。

4、 使用全局變量。

下面是詳細解釋:

方法一:將字符串指針作為函數參數傳入,并返回該指針。

典型的strcpy()函數應該就是采用的這種方法,第一個參數為指向目的字符串的指針,返回值也為這個指針。

char* strcpy(char* des,const char* source) {  char* r=des;   assert((des != NULL) && (source != NULL));  while((*r++ = *source++)!='/0');  return des; }

方法二:使用malloc函數動態分配,但是一定要注意在主調函數中將其釋放,應為malloc動態分配的內存位于堆區,而堆區的內存是要程序員自己釋放的。

一個例子如下:

#include <stdio.h>#include <string.h>#include <stdlib.h>char * retstring();int main(){  char * name2;  name2 = retstring();  printf("%s/n",name2);  //記住一定要用free釋放,否則會造成內存泄露  free(name2);  return 0;}char * retstring(){  char * name;  name = (char *)malloc(10);   strcpy(name,"張漢青");  return name;}

方法三:返回一個靜態局部變量。

一個例子如下:

#include <stdio.h>#include <string.h>#include <stdlib.h>char * retstring();int main(){  char * name2;  name2 = retstring();  printf("%s/n",name2);  return 0;}char * retstring(){  static char name[10];  strcpy(name,"張漢青");  return name;}

這種方法有一個問題: 由于采用了靜態局部變量(位于靜態區,程序結束時由系統進行釋放),這就導致,如果多次調用這個函數,下一次調用會將上一次調用的結果覆蓋掉。

C語言中的庫函數,tmpnam()函數、getenv()函數等應該都是采用的這種方法,這也就是為什么,使用這樣的函數的時候應該立即將返回結果拷貝一份的原因。

方法四: 使用全局變量。

一個例子如下:

char  g_s[100]; char*  fun() {     strcpy(g_s,  "abc ");     return  s; } 

上述文章就是武林技術頻道小編為大家帶來的C語言中函數返回字符串的四個方法,希望對大家有所幫助,也希望本文的知識對大家的學習有幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成在线视频| 精品调教chinesegay| 亚洲欧美色图片| 91免费看片在线| 欧美激情一级欧美精品| 国产精品自拍偷拍| 国产精品欧美日韩久久| 日本中文字幕不卡免费| 国产伦精品一区二区三区精品视频| 欧美大片在线免费观看| 亚洲电影免费观看高清完整版在线| 98午夜经典影视| 欧美性极品少妇精品网站| 久久综合伊人77777蜜臀| 欧美另类精品xxxx孕妇| 日本不卡高字幕在线2019| 97在线看免费观看视频在线观看| 国产一区红桃视频| 亚洲精品小视频| 亚洲色无码播放| 国产成人精品久久二区二区| 国产成人亚洲综合青青| 成人黄色午夜影院| 日韩综合视频在线观看| 久久国产精品网站| 国语自产精品视频在线看抢先版图片| 日韩中文字幕av| 久久久欧美一区二区| 久久精品国产欧美激情| 亚洲激情自拍图| 欧美一区二区视频97| 中文字幕国产精品| 成人久久久久久久| 亚洲精品aⅴ中文字幕乱码| 国产成人福利视频| 亚洲风情亚aⅴ在线发布| 日韩欧美国产一区二区| 日本一区二区不卡| 久久久女女女女999久久| 中文字幕精品国产| 91探花福利精品国产自产在线| 18一19gay欧美视频网站| 国产精品91久久| 欧美裸体男粗大视频在线观看| 中文字幕亚洲欧美日韩在线不卡| 久久夜精品va视频免费观看| 成人乱色短篇合集| 日韩一区二区三区在线播放| 精品高清一区二区三区| 97精品国产91久久久久久| 伊人一区二区三区久久精品| 国产成人鲁鲁免费视频a| 欧美日在线观看| 欧美黑人巨大精品一区二区| 久久久91精品国产一区不卡| 亚洲欧美在线播放| 国产乱人伦真实精品视频| 亚洲精品在线91| 欧美国产日韩一区二区| 亚洲a区在线视频| 国产综合久久久久| 91国自产精品中文字幕亚洲| 国产精品入口尤物| 国产日本欧美在线观看| 精品福利在线观看| 国外成人在线直播| 欧美专区在线播放| 日韩av一区二区在线观看| 69视频在线播放| 精品成人在线视频| 欧美国产精品日韩| 日韩av资源在线播放| 欧美中文字幕在线观看| 久久69精品久久久久久久电影好| 亚洲天堂av网| 欧美性猛交xxxx黑人猛交| 国产精品7m视频| 国产亚洲一区精品| 欧美激情免费观看| 欧美另类暴力丝袜| 亚洲91av视频| 日韩有码在线播放| 国产成人精品视频在线| 亚洲mm色国产网站| 91久久精品国产91久久| 精品视频www| 欧美性xxxxx极品| 欧美在线日韩在线| 91麻豆国产语对白在线观看| 亚洲一区制服诱惑| 欧美日韩一区免费| 欧美性高潮在线| 日韩欧美在线视频日韩欧美在线视频| 国产啪精品视频| 九九久久久久99精品| 亚洲欧美激情四射在线日| 91美女片黄在线观| 国产精品福利在线观看| 亚洲自拍高清视频网站| 亚洲第一福利在线观看| 中文字幕欧美在线| 日韩成人激情视频| 影音先锋欧美精品| 91免费国产视频| 国产精品电影久久久久电影网| 日韩动漫免费观看电视剧高清| 中文字幕精品—区二区| 欧美性感美女h网站在线观看免费| 亚洲精品自拍偷拍| 亚洲欧美制服综合另类| 日韩少妇与小伙激情| 成人妇女淫片aaaa视频| 久久久久久久久亚洲| 日韩视频免费中文字幕| 精品国产网站地址| 国产精品日韩在线播放| 亚洲国产精品高清久久久| 亚洲一级免费视频| 欧美精品videos另类日本| 伊人亚洲福利一区二区三区| 欧美国产日韩精品| 最近2019中文字幕大全第二页| 91国产高清在线| 91精品国产91久久久久久吃药| 亚洲图片欧美日产| 成人黄色av播放免费| 欧美黄色小视频| 国产成人avxxxxx在线看| 久久香蕉频线观| 国产日韩在线观看av| 中文字幕亚洲专区| 精品久久香蕉国产线看观看gif| 136fldh精品导航福利| 欧美在线性爱视频| 日韩福利视频在线观看| 精品女同一区二区三区在线播放| 国产亚洲精品成人av久久ww| 欧美激情欧美激情在线五月| 91精品国产综合久久男男| 亚洲国产精品网站| 亚洲性无码av在线| 秋霞午夜一区二区| 97精品视频在线观看| 中文日韩在线观看| 91精品国产91久久久久福利| 国产精品美女无圣光视频| 欧美专区国产专区| 久久99久久亚洲国产| 欧美成人一区二区三区电影| www.欧美三级电影.com| 亚洲四色影视在线观看| 日韩精品极品在线观看播放免费视频| 2019中文字幕在线免费观看| 日韩av在线播放资源| 日韩av综合中文字幕| 国产精品视频精品| 亚洲欧美中文日韩在线v日本| 亚洲最大av网| 亚洲成人久久久| 久久久综合av| 日韩欧美成人网| 日韩电影视频免费| 欧美日韩视频在线| 久久国产精品久久久|