以下兩種初始化字符串的方式并返回

char *get_str():
char *str = "LBWNB";
return str
char *res = get_str();char *get_str():
char str[] = "LBWNB";
return str
char *res = get_str();后者由于是數組,所以返回后給外部的 res 變量,res 會變成 NULL,(函數執行完畢后釋放了)
而前者這樣的申請方式,返回給外部 res 變量,res 可以正常訪問字符串 “LBWNB”
值得一提的是,char *str = "LBWNB";這樣執行,字符串是被存在**(全局)靜態數據區**的,其只可以被訪問,不可以被修改,如果執行*(str+1) = 'v',其編譯可以通過,但在執行過程中,可能報segmentfault。
而char str[] = "LBWNB";執行之后,字符串數據存在棧區,可以被修改.
順便安利一個C的在線編譯網站:https://godbolt.org/
其余詳細內容可查看: https://blog.csdn.net/lanyang123456/article/details/6669926
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享文章:[每日一氵]C語言函數不要返回數組地址-創新互聯
網站路徑:http://www.yijiale78.com/article20/csoojo.html
成都網站建設公司_創新互聯,為您提供網站導航、App設計、企業網站制作、用戶體驗、建站公司、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯