刚开始看到 sizeof(std:string)的输出有32个字节,以为只能容纳32个字符,觉得不应该,后来网上也查到能容纳的字符是相当多的。
后来反应过来,string是一个类,用sizeof计算后,得到的其实是string类的成员所占用的字节长度。
举个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> using namespace std; class test { int test1; int test2; int test3; int test4; }; int main(int argc, char **argv) { cout << sizeof(test) << endl; return 0; } |
编译运行后,其输出结果为16,是因为test是一个类,用sizeof计算,得到其内部成员的字节数,一个int类型占用4个字节,4个int数据就是16字节,因作此解。