sizeof(string)

1、sizeof()返回的是string对象所占用的空间,而不是string所存储的字符串的大小。
2、string的实现在各库中可能有所不同,但是在同一库中相同的一点是,无论string里放多长的字符串,它的sizeof()都是固定的,字符串所占的空间是从堆中动态分配的,与sizeof()无关。   

3、sizeof(string)=4可能是最典型的实现之一,不过也有sizeof()为12、32字节的库实现,VC6.0测试后sizeof(string)=16,说明还是跟编译器有关。

eg: win8.1 64位 vs2012

string str="123156465746465432168asasd";
	cout  <<sizeof(str)  <<endl;		//28
	cout  <<sizeof(string)  <<endl;		//28


猜你喜欢

转载自blog.csdn.net/sinat_36391009/article/details/53435130