欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年12月13日 09:00:51   作者:turkeyzhou  
在C語言中實現(xiàn)函數(shù)返回字符串,首先要確定函數(shù)返回的字符串地址的來源,一般分為四種方式,下面這篇文章就給大家通過示例代碼詳細介紹這幾種方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。

前言

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

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

下面來看看詳細的介紹

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

使用分配的內(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; 
} 

這種方式需要注意,不要修改返回的這個字符串,由于是共享地址,對它的修改會反應到每個調(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; 
} 

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

總結

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

相關文章

  • 談談vector的特殊性之為什么它不是STL容器

    談談vector的特殊性之為什么它不是STL容器

    這篇文章主要給大家介紹了關于vector的特殊性之為什么它不是STL容器的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • 用C語言實現(xiàn)井字棋游戲代碼

    用C語言實現(xiàn)井字棋游戲代碼

    大家好,本篇文章主要講的是用C語言實現(xiàn)井字棋游戲代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 數(shù)據(jù)結構課程設計- 解析最少換車次數(shù)的問題詳解

    數(shù)據(jù)結構課程設計- 解析最少換車次數(shù)的問題詳解

    數(shù)據(jù)結構課程設計- 解析最少換車次數(shù)的問題詳解
    2013-05-05
  • C語言 main 函數(shù)詳情

    C語言 main 函數(shù)詳情

    這篇文章主要介紹C語言 main 函數(shù),文章將圍繞C語言 main 函數(shù)相關資料詳細展開,需要的朋友可以參考一下
    2021-10-10
  • C++版圖書管理系統(tǒng)

    C++版圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++版圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Clion(CMake工具)中引入第三方庫的詳細方法

    Clion(CMake工具)中引入第三方庫的詳細方法

    這篇文章主要介紹了Clion(CMake工具)中引入第三方庫的詳細方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • C++命名空間namespace的介紹與使用

    C++命名空間namespace的介紹與使用

    今天小編就為大家分享一篇關于C++命名空間namespace的介紹與使用,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言課程設計之抽獎系統(tǒng)

    C語言課程設計之抽獎系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言課程設計之抽獎系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++ 純虛函數(shù)詳解

    C++ 純虛函數(shù)詳解

    本文主要介紹了C++ 純虛函數(shù)詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 關于CLion配置visual?studio(msvc)和JOM多核編譯的問題

    關于CLion配置visual?studio(msvc)和JOM多核編譯的問題

    這篇文章主要介紹了CLion配置visual?studio(msvc)和JOM多核編譯,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論