C++中的字符串是否没有越界例外/错误?

string p="a";
cout<<p[4];

这段代码没有给出任何错误。这是否意味着 C++ 中的字符串数据类型也不受数组限制?

回答

您的代码具有未定义的行为

std::string::operator[] 不执行任何边界检查。

std::string::at()另一方面,std::out_of_range当您访问越界数据时,执行边界检查并抛出类型异常。

这是否意味着 C++ 中的字符串“数据类型”也没有像数组一样有界?

当然std::string有界限。您访问其内容的方式是不同之处在于是否将执行绑定检查。


以上是C++中的字符串是否没有越界例外/错误?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>