前言
C語言返回字符串函數(shù)共有四種方式,分別如下:
下面來看看詳細(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語言能有所幫助,如果有疑問大家可以留言交流。
|
新聞熱點
疑難解答
圖片精選