程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 淺談C++中的string 類型占幾個字節

淺談C++中的string 類型占幾個字節

編輯:關於C++

淺談C++中的string 類型占幾個字節。本站提示廣大學習愛好者:(淺談C++中的string 類型占幾個字節)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談C++中的string 類型占幾個字節正文


在C說話中我們操作字符串確定用到的是指針或許數組,如許絕對來講對字符串的處置照樣比擬費事的,好在C++中供給了 string 類型的支撐,讓我們在處置字符串時便利了很多。

起首,我寫了一段測試代碼,以下所示:

#include <iostream>
using namespace std;

int main(void)
{
 string str_test1;
 string str_test2 = "Hello World";

 int value1, value2, value3;

 value1 = sizeof(str_test1);
 value2 = sizeof(str_test2);
 value3 = sizeof(string);

 cout<<"str_test1占 "<<value1<<" 個字節"<<endl;
 cout<<"str_test2占 "<<value2<<" 個字節"<<endl;
 cout<<"string占 "<<value3<<" 個字節"<<endl;

 system("pause");
 return 0;
}

起首,我用G++編譯運轉,獲得的成果以下圖所示:


這解釋string占4個字節。
以後,我用VS2012編譯運轉,獲得的成果以下圖所示:


奇異,這裡string居然占28個字節。
這裡,我們留意不雅察,還會發明一個成績,不論有無對string類型的變量賦值,或許是賦甚麼值,獲得的成果是一樣的。

上面,來說明上述成績:
string的完成在各庫中能夠有所分歧,然則在統一庫中雷同一點是,不管你的string裡放多長的字符串,它的sizeof()都是固定的,字符串所占的空間是從堆中靜態分派的,與sizeof()有關。    sizeof(string)=4能夠是最典范的完成之一,不外也有sizeof()為12、32字節的庫完成。平日,我們所用到的 string 類型普通都邑是如許完成:

class{     
char *_Ptr;    //指向字符串的指針     
int _Len;      //字符串的長度     
........};

所以,我們普通接觸到的string類型所占字節數為 8+。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved