C++返回字符串函数的几种实现方法
生活随笔
收集整理的這篇文章主要介紹了
C++返回字符串函数的几种实现方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C++返回字符串函數(shù)
有四種方式:
1。使用堆空間,返回申請(qǐng)的堆地址,注意釋放 2。函數(shù)參數(shù)傳遞指針,返回該指針 3。返回函數(shù)內(nèi)定義的靜態(tài)變量(共享) 4。返回全局變量
1。使用堆空間,返回申請(qǐng)的堆地址,注意釋放 2。函數(shù)參數(shù)傳遞指針,返回該指針 3。返回函數(shù)內(nèi)定義的靜態(tài)變量(共享) 4。返回全局變量
1.使用堆空間,返回申請(qǐng)的堆地址,注意釋放
其實(shí)就是要返回一個(gè)有效的指針,尾部變量退出后就無(wú)效了。? 使用分配的內(nèi)存,地址是有效? char *fun() { char* s = (char*)calloc(100, sizeof(char*) ); if (s) strcpy( s,"abc"); return s; } 但這種方式需要注意,必須由使用將將返回的地址free掉?2.函數(shù)參數(shù)傳遞指針,返回該指針
將地址由入?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; }3.使用局部靜態(tài)變量?
char* fun() { static char s[100]; strcpy(s, "abc "); return s; } 這種方式需要注意,不要修改返回的這個(gè)字符串,由于是共享地址,對(duì)它的修改會(huì)反應(yīng)到每個(gè)調(diào)用者的。可以這樣:? const char* fun() { static char s[100]; strcpy(s, "abc "); return s; }4.使用全局變量?
char g_s[100]; char* fun() { strcpy(g_s, "abc "); return s; } 同樣的,也要注意這個(gè)變量可存儲(chǔ)的最大空間。總結(jié)
以上是生活随笔為你收集整理的C++返回字符串函数的几种实现方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 主成分分析(PCA)深入剖析+Matla
- 下一篇: 飞鸽传书2011比飞鸽传书2007的进化