sizeof(str1)和str1.size()有什么不同
sizeof(str1)和str1.size()有什么不同
sizeof(str1)和str1.size()有什么不同
sizeof(str1)和str1.size()有什么不同
sizeof(str1)是编译期的,得到的是字符串对象占用的内存。假设字符串对象这么实现的:
class string
{
private:
char * pstr;
int bufflen;
...
public:
int size();
string append(string& s);
string substr(string& s);
...
};
sizeof返回的是这个类占用了多少空间,而不是其中的真正的字符串指针pstr指向的字符串的存储空间,前者是固定的。
而size() length() 都是函数,运行的时候计算的结果,返回字符串的长度。