首页 > 解决方案 > std::string 的 c_str() 函数如何返回空终止字符串?

问题描述

我无法理解从 string.c_str() 返回的 char * 是否指向同一个缓冲区(并且不进行任何复制)它是如何以空值终止的?该函数是否在字符串末尾添加空终止符?如果缓冲区没有任何额外的字节来存储它会发生什么?

谢谢。

标签: c++stringstdstringnull-terminatedc-str

解决方案


从 C++11 开始,字符串在内部以空值结尾,并且两者都c_str()返回data()相同的东西


推荐阅读