我们都知道有一个空字符会自动附加到 C 字符串的末尾......那么 C++ 字符串对象呢?末尾也有空字符吗?
非常感谢!
最佳答案
在 C++03 中,不需要将 std::string 存储在以 NUL 结尾的缓冲区中,但是如果您调用 c_str()
,它将返回一个指向 NUL- 的指针终止缓冲区。该缓冲区可以在 c_str()
调用中合法创建和/或终止。
在 C++11 中,所有 std::string
实例都被终止,因此 data()
也寻址一个以 NUL 终止的缓冲区,甚至 s [s.size()]
具有明确定义的含义,返回对终止 NUL 的引用。
关于c++ - C++ 中的字符串对象末尾是否有空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780514/