如何解决我想知道为什么 std::string::c_str() 返回 const char * type
我想知道为什么 std::string::c_str() 返回 const char * 类型,即使 sting 是 char 数组类型。
string s("Hello");
s[1] = 'a';
我也可以像上面一样更改元素。 但是,如果我调用 c_str() 来知道字符串对象中字符串的起始地址,它返回的是 const char * 类型。
因此,我必须使用 strcpy() 将其转换为 char 类型的数组。
为什么它返回 const 类型?
解决方法
让某些原语保持不变有助于提高效率。如果编译器知道您不允许更改某个值,则它可以以对可变值无法实现的方式进行优化。
同样,可以使用 K&R 首次构建 C 时不存在的新 CPU 内存保护功能来保护常量值以防止缓冲区溢出尝试。
这些是拥有不可变 String 原语的一些参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。