前言
C語言返回字符串函數共有四種方式,分別如下:
下面來看看詳細的介紹
其實就是要返回一個有效的指針,尾部變量退出后就無效了。
使用分配的內存,地址是有效
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語言能有所幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選