C++中string本身到底占几个字节?

书上一般都写sizeof(string)=4,这是针对32位机来说的吧?但是我的机子是32位的,为什么sizeof(string)每次都得到16呢?
lang同学的例子本身没有错,按照数据对齐(字节对齐)原则,该例子的结果的确是8,但是这个string不是字符串string,而是你定义的一个类或者结构;如果单纯从string这个类型来讲,其本身该是多大呢,比如sizeof(int)=4.

string有4个成员变量 npos,指向字符串的指针_Ptr,字符串的长度_Len,以及_Res,共16字节
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-06
这个问题没有必要深究

string到底是几个字节由实现方法决定

最简单的
class string
{
char str[];
long count;
...................
};

这个结构就是 8+ 字节
建议看看 侯捷的《STL源码剖析》本回答被提问者采纳
相似回答