在C++中,
std::string
中的c_str()
函数的参考文献中提到:
返回值
指向底层字符存储的指针。
data()[i] == operator[](i)
对于[0,size())内的每个i成立 (C++11之前)。
data() + i == &operator[](i)
对于[0,size()]内的每个i成立(自C++11起)。
我不理解两者之间的区别,除了自C++11以来范围增加了一个元素。
难道前面的语句data()[i] == operator[](i)
对后者也是成立的吗?
c_str()
进行复制。 - sp2dannydata()[size()]
是未定义行为。 - Jarod42