string 与char *的区别
生活随笔
收集整理的這篇文章主要介紹了
string 与char *的区别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
string是STL當(dāng)中的一個容器,對其進(jìn)行了封裝,所以操作起來非常方便。
char *是一個指針,可以指向一個字符串?dāng)?shù)組,至于這個數(shù)組可以在棧上分配,也可以在堆上分配,堆得話就要你手動釋放了。
string的內(nèi)存管理是由系統(tǒng)處理,除非系統(tǒng)內(nèi)存池用完,不然不會出現(xiàn)這種內(nèi)存問題。
char *的內(nèi)存管理由用戶自己處理,很容易出現(xiàn)內(nèi)存不足的問題。
char *s="string"的內(nèi)容是不可以改的;char s[10]="string"的內(nèi)容是可以改的
當(dāng) string 直接轉(zhuǎn)化成 const char *時,可以通過兩個函數(shù)c_str(),data成員函數(shù),例如:
將*char 轉(zhuǎn)化成string,直接轉(zhuǎn)化就可以。就是注意輸出的問題:
char *a="xiaoming";string s;s=a;printf("%s\n",s.c_str());總結(jié)
以上是生活随笔為你收集整理的string 与char *的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用VC++实现USB接口读写数据的程序
- 下一篇: 联想笔记本电脑,重新安装系统之U盘启动方