“tr”和字串型別的string str = "tr"對比
[i][b]本文為firedragonpzy原創,轉載務必在明顯處註明:
轉載自【Softeware MyZone】原文連結: http://www.firedragonpzy.com.cn/index.php/archives/1025[/b][/i]
有關sizeof詳細可參考:[url]http://firedragonpzy.d3.tuidc.com/index.php/archives/1015[/url]
轉載自【Softeware MyZone】原文連結: http://www.firedragonpzy.com.cn/index.php/archives/1025[/b][/i]
今天在研究sizeof的時候發現了一些比較有趣的現象,程式碼如下:
string str = "tr";
cout<<str.size()<<endl;//2
cout<<strlen(str.c_str())<<endl;//2
cout<<sizeof(str)<<endl;//32
cout<<str[1]<<endl;//r
//cout<<"tr".size()<<endl;//報錯
cout<<strlen("tr")<<endl;//2
cout<<sizeof("tr")<<endl;//3
cout<<"tr"[2]<<endl;空白
事實表明,str和"tr"是不一樣的,str是個string型別的物件,佔據32位byte的空間,而"tr"是char型別的陣列,末尾均以"\0"填充,而string型別的str是不以"\0"填充,這個是被string型別處理了。一個str和"tr"很明顯的區別就是"tr"根本就沒有size()的方法。
再說下sizeof和strlen的區別:
sizeof:取得是實際變數佔據的記憶體空間
strlen:取得是除去"\0"後變數佔據的記憶體空間
有關sizeof詳細可參考:[url]http://firedragonpzy.d3.tuidc.com/index.php/archives/1015[/url]
相關文章
- String str=null; 和String str=""的區別Null
- 命令:tr
- String:字串型別字串型別
- Redis的字串型別(String)Redis字串型別
- Linux tr命令Linux
- tr 命令專題
- Python - 基本資料型別_str 字串Python資料型別字串
- Oracle date 型別比較和String比較Oracle型別
- javascript型別系統——字串String型別JavaScript型別字串
- [shell基礎]——tr命令
- std::tr1::functionFunction
- tr69筆記筆記
- tr命令“字元”處理字元
- js常用的功能 table>tr>tdJS
- 如何用jquery獲取DIV中的TR和TDjQuery
- Linux基礎命令---trLinux
- 用 tr 過濾檔案
- 關於qt中的tr()函式QT函式
- rust 中 str 與 String; &str &StringRust
- JavaScript當前tr行高亮效果JavaScript
- String型別字串判斷非空型別字串
- char str[]和char *str的區別
- JavaScript表格tr行左右拖動效果JavaScript
- HDU 1575 Tr A(矩陣快速冪)矩陣
- PHP基礎-資料型別-string和int比較PHP資料型別
- JavaScript的String和Boolean型別JavaScriptBoolean型別
- 使用jQuery控制table表格的tr行顯示和隱藏效果jQuery
- 關於Java和C#的型別對比JavaC#型別
- golang string和[]byte的對比Golang
- jQuery table表格tr行顯示隱藏jQuery
- String型別的屬性和方法型別
- MySql和SQL Server資料型別 對比MySqlServer資料型別
- 【轉】linux中的cut/tr/join/split/xargs命令Linux
- jquery判空 string型別的日期比較大小jQuery型別
- String.valueOf和強制型別轉換(String)的區別型別
- 使用concatenate連線時,字串型別(String)要比字元型別(C)快字串型別字元
- 《卸甲筆記》-PostgreSQL和Oracle的資料型別的對比系列五:其它型別筆記SQLOracle資料型別
- 型別轉換(int 和 String)型別