万千只cnm 发表于 2021-8-23 22:56:45

c++ string 对象

请问 string对象不初始化 是个空串
#include <iostream>
#include <string>
using std::string;
int main(){
    string str;
    str;
}

空串至少含一个'\0' 的话那解引用第一个元素是否合法呢(或者问空串是否自动包含一个NUL 吗

我感觉合法 {:5_100:}

人造人 发表于 2021-8-23 23:06:34

本帖最后由 人造人 于 2021-8-23 23:08 编辑

https://www.zhihu.com/question/33312840

C++11开始要求必须以\0结尾,具体的:
operator[]的参数可以是size(),此时返回\0,但是你不能修改这个返回的char&
data()和c_str()都返回\0结尾的字符串



在我这边,operator[]的参数可以是size()

人造人 发表于 2021-8-23 23:09:46

按照知乎上的说法,从C++11开始,合法
页: [1]
查看完整版本: c++ string 对象