a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言實現(xiàn)返回字符串函數(shù)的四種方法

2020-01-26 14:22:11
字體:
供稿:網(wǎng)友

前言

C語言返回字符串函數(shù)共有四種方式,分別如下:

  1.       使用堆空間,返回申請的堆地址,注意釋放
  2.       函數(shù)參數(shù)傳遞指針,返回該指針
  3.       返回函數(shù)內(nèi)定義的靜態(tài)變量(共享)
  4.       返回全局變量

下面來看看詳細(xì)的介紹

其實就是要返回一個有效的指針,尾部變量退出后就無效了。

使用分配的內(nèi)存,地址是有效

char *fun() {   char* s = (char*)calloc(100, sizeof(char*) );   if (s)     strcpy ( s , "abc " );   return s; } 

但這種方式需要注意,必須由使用將將返回的地址free掉

將地址由入?yún)魅?

char* fun(char*s) {   if (s)     strcpy(s, "abc ");   return s; } 

這種方式調(diào)用都要注意給s分配的大小是足夠。

可以這樣:

char* fun(char*s, int len) {   if (s)   {     strncpy(s, "abc ", len-1);     s[len-1] = 0;   }   return s; } 

或才使用局部靜態(tài)變量

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

這種方式需要注意,不要修改返回的這個字符串,由于是共享地址,對它的修改會反應(yīng)到每個調(diào)用者的。可以這樣:

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

還有一種是使用全局變量

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

同樣的,也要注意這個變量可存儲的最大空間。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者使用C語言能有所幫助,如果有疑問大家可以留言交流。

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

圖片精選

主站蜘蛛池模板: 亚洲免费在线视频 | 亚洲视频免费 | 伊人网在线视频 | 免费v片在线观看 | 欧美日韩激情在线 | 国产成人一区二区三区 | 久久三区 | a中文在线视频 | 欧美影院一区 | 日本一区二区在线视频 | 久久精品在线观看视频 | 精品在线免费视频 | 美女一级毛片 | 亚洲一区二区三区国产 | 亚洲蜜桃精久久久久久久 | 久草电影网 | 二区不卡 | 日本福利一区 | 波多野结衣亚洲 | 久久午夜夜伦鲁鲁一区二区 | 成人国产精品久久 | 深夜成人小视频 | 国产成在线观看免费视频 | 欧美亚洲一区 | 欧美成人一区二区三区片免费 | 久久久久一级 | 国产一区二区三区精品久久久 | av一二三区 | 欧美日韩亚洲成人 | 欧美日韩成人免费 | 91在线电影 | 亚洲小视频网站 | 久久区二区 | 农村妇女毛片精品久久久 | 日本理论片好看理论片 | 色欧美片视频在线观看 | 中文字幕免费中文 | 久久精品成人欧美大片 | 日本久久精品一区二区 | 国产香蕉视频在线播放 | 午夜精品久久久久 |