std::string (也就是C++中的string):标准并没有规定字符串必须以\0字符结尾。编译器在实现时既可以在结尾加上\0,也可以不加,这个是由编译器决定的,因为string是一个类,它的长度信息已经封装到类的私有变量里面了。
但是当通过c_str()或者data()(二者在c++ 11以及之后的标准中等价)转换得到的const char *时,会发现最后一个字符一定是\0。这个就是C语言中的string的结尾标志了(C语言中没有string类,都是char *)。
————————————————
版权声明:本文为CSDN博主「土豆西瓜大芝麻」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jinking01/article/details/109333692