32位机下是4 ,64位下是8,string类内部成员是char *。
#include
#include
using namespace std;
int main()
{
cout << sizeof(string) << endl;
return 0;
}
输出值为8,我的是64为虚拟机。
这个跟编译器有关的,在32位机的 vc6.0下sizeof(string) =16;但在VS2008下它是32.
就用下面这段程序测的。
#include
#include
void main()
{
std::cout<
}
struct list{
double a;
int b;
string c;
}list;
sizeof(list)=20h
sizeof(string)=10h
sizeof(list.c)=10h
c只是string类的一个对象而已,类似于一个指针一样,list只包含指针的长度,而不包含指针所指内容的长度
string的字节数
这个应该跟string类的实现有关,我这台机器是16,其他机器可能会不同