std::string的⽅法c_str()和data()有什么区别1、从C++标准上的解释来看,只有⼀点区别:
c_str() 返回⼀个指向正规C字符串的指针常量,该指针保证指向⼀个 size() + 1 长度的空间,⽽且最后⼀个字符肯定是 \0 ;
⽽ data() 返回的指针则保证指向⼀个size()长度的空间,不保证有没有null-terminate,可能有,可能没有,看库的实现了。
2、有的STL的实现中,⼆者是完全⼀样的,如vs7.1,两个函数的源码中,data()函数内部调⽤的是c_str():
const _Elem *c_str() const
{ // return pointer to null-terminated nonmutable array
mutable是什么意思return (_Myptr());
}
const _Elem *data() const
{ // return pointer to nonmutable array
return (c_str());
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论