关于 std::string 使用问题

cuomj cuomj 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
直接上代码

std::string getid()
{
return std::string("aaaa");
}

int main(int argc, char* argv[])
{
std::string &sst = getid();
const char *pps = sst.c_str(); //返回 aaaa
const char *pp = getid().c_str(); //未能返回aaaa

return 0;
}
通过查看 pps 和 pp的内存,发现两者地址不同

求解,感觉很困惑

...全文

相关推荐

std::string的find问题研究

一次偶然,发现完全同一份代码,在不同机器上find出现两个不同执行结果,本文旨在研究find的“诡异”行为,找出背后的原因。

岚天逸剑

C++17 使用 std::string_view避免字符串拷贝优化程序性能

C++中std::string是日常Coding中经常使用的一个类,使用起来非常方便,但是也存在一些弊端。 如下代码,参数传递的过程发生了内存分配(Memory Allocation)和内存拷贝。 void fun(const std::string& s) { std::cout << s << std::endl; } const char* ch = "hello world"; // bad way, expensive if the string is long fun(ch); 再看下面的常用的字符串截取实现: // very long string std::strin

weixin_38508126

C++ std::string详解[源码]

本文详细介绍了C++标准库中的std::string类,包括其底层实现、成员函数、构造函数与析构函数、运算符重载以及性能问题。std::string提供了一种灵活、高效的字符串表示方式,相比于C语言中的字符串表示更易于使用且安全。文章深入探讨了std::string的底层实现,如动态内存分配、长度和容量管理,以及空终止符的使用。此外,还列举了常用的成员函数,如append、assign、at等,并解释了构造函数和析构函数的作用。最后,文章讨论了字符串操作中可能遇到的性能问题,并提供了优化建议,如预留空间、使用移动语义和std::stringstream等。

s3t4u

利用C++实现从std::string类型到bool型的转换

利用输入字符串流:std::istringstream 代码如下:bool b;std::string s = “true”;std::istringstream(s) >> std::boolalpha >> b;但当字符串s为“1”时,上面的代码无法正确转换,此时应该用: 代码如下:bool b;std::string s = “1”;istringstream(s) >> b;不足:除了加条件判断语句外,暂未找到其它能同时涵盖两种情况的简单方法。 您可能感兴趣的文章:详解C++中String类模拟实现以及深拷贝浅拷贝自己模拟写C++中的St

weixin_38705530

C/C++中关于std::string的compare陷阱示例详解

主要给大家介绍了关于C/C++中关于std::string的compare陷阱的相关资料,文中先对C/C++中的std::string进行了简单的介绍,通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

weixin_38721691
评论 7
收藏 已收藏
分享
返回顶部
cuomj
VC/MFC 16,550 成员 421,606 内容