char *pt = "hello";
std::string str = "hello";str是否也以'/0'结尾(是否以null结尾)?
发布于 2013-11-28 08:55:04
std::string是否以null结尾是由实现定义的。
str定义后的实际内容:
std::string str = "hello";是字符'h'、'e'、'l'、'l'、'o',其size仅等于5个字符。
发布于 2013-11-28 08:51:02
由str管理的缓冲区可以是空终止的,但不一定是空的。
发布于 2013-11-28 09:10:08
str.c_str()将为您提供一个const char*,它指向一个以null结尾的连续缓冲区(就像您的"hello"字符串文字一样)。
但是要注意使用&str[0],因为它不能保证指向一个连续的缓冲区,也不能保证这个缓冲区是以null结尾的。
https://stackoverflow.com/questions/20255864
复制相似问题