首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中,为啥sizeof(string)是32

2012-06-25 
C++中,为什么sizeof(string)是32?请教 :string strstrcoutsizeof(str)endlcoutsizeof(string)

C++中,为什么sizeof(string)是32?
请教 :
string str="str";
cout<<sizeof(str)<<endl;
cout<<sizeof(string)<<endl;
为什么这两个值都是32呢?
(注:我是在VS2005中编译的,另外我的机器是64位的)

[解决办法]
举个例子,请楼主自行体会^_^

C/C++ code
class A{    pulic:    char * data;    A(int i){data = new char[i]};    ~A(){detele [] data};};int main{    A a(20);//a里面的data指向了一个长度为20的char数组哦^_^    cout<<sizeof(A)<<endl;//可是sizeof(A)只有4或者8,仅仅是一个char指针的大小^_^    return 0;};
[解决办法]
不好意思。刚没看清问题。

应该是这样的,string类中有一个指向字符串的指针,同时还有长度等等的记录,最终它所需要的空间是32

热点排行