如果访问错误的字符串索引,c++ 不会抛出错误

标签 c++ arrays string

<分区>

我有以下代码:

string s = "haha";
cout << s << endl; //haha
cout << s.length() << endl; //4
cout << (s[25] == 'h' ? "is h" : "is not h") << endl; //is not h
cout << s[0] << endl; // h
cout << s[25] << endl; // nothing...blank

似乎指向任何索引,即使它超出范围也不会抛出任何错误......这是什么原因?

最佳答案

效率。您可以使用 at边界检查函数。

关于如果访问错误的字符串索引,c++ 不会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31918307/

相关文章:

c# - 如何在 Visual C++ 中将托管变量用作全局变量?

c++ - 未找到 Xcode C++ 标准库

c++ - 基本 C++ 原子数组

javascript - 如何在 JavaScript 中递归地构建菜单列表对象?

java - 如何在 Java 中不使用正则表达式来处理不区分大小写的字符串替换

c++ - 使用 C++ 在 Qt3D 中创建多个视口(viewport)的问题

c++ - 我可以将此宏更改为内联函数而不影响性能吗?

java - 如何在容量不足的数组中找到最后一个元素?

c++ - 双空终止字符串

C++ , winapi 比较两个 WCHAR * 字符串