国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言實現返回字符串函數的四種方法

2020-01-26 14:22:11
字體:
來源:轉載
供稿:網友

前言

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

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

下面來看看詳細的介紹

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

使用分配的內存,地址是有效

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

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

將地址由入參傳入

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

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

可以這樣:

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

或才使用局部靜態變量

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

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

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

還有一種是使用全局變量

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

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

總結

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

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

圖片精選

主站蜘蛛池模板: 延寿县| 西吉县| 社旗县| 武胜县| 钟祥市| 泗阳县| 保德县| 乳山市| 克拉玛依市| 本溪| 平顺县| 松阳县| 宁夏| 揭东县| 邻水| 百色市| 福泉市| 崇阳县| 杭锦旗| 射洪县| 闽侯县| 岳普湖县| 阳江市| 崇礼县| 逊克县| 泾阳县| 承德县| 农安县| 江山市| 安远县| 进贤县| 工布江达县| 闽清县| 呼图壁县| 云龙县| 顺昌县| 维西| 荔浦县| 兴业县| 玉龙| 聂拉木县|