C++中string的问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 13:33:15
string a;

cout << a.size() << a.empty() << endl;//这里正常

cout <<sizeof(a);//我运行的时候这里的输出是16.不管a是否被初始化

sizeof(a) = sizeof(string)

string类的size就是16,a.size()返回的才是string里字符串的长度

string 就像一个数组,你如果初使化超过16它就增加一定的长度,哈哈,学一下数据结构就知道了。起初会分配一定空间的。。。

sizeof(a) 是在编译时决定的,所以不管你怎么初始化都是一样。

有道理