sizeof与size,length
先看这样的代码:
QString s="abcdefg";
qDebug().noquote()<<"sizeof:"<<sizeof(s); // 4
qDebug().noquote()<<"length:"<<s.length(); // 7
qDebug().noquote()<<"size:"<<s.size(); // 7
sizeof
不是函数,length
和size
都是函数。
sizeof
返回的是对象所占内存空间大小,例如在32位机器上,int对应4,double对应8。对于QString,源码中只有一个非静态成员变量Data *d;
,其他变量全是static,不占空间,所以sizeof(s)是4。
QString源码中关于size
和length
的部分:
Data *d;
inline int QString::length() const { return d->size; }
inline