c++ 内存分区/char* memcpy/string length/string size*
int main() {
string t1("abcd");
string t2;
// x, y指向的地址相同(字符串存放到常量区,看下方图示), 存放x, y本身的地址是不相同的,
const char* x = "abcd";
const char* y = "abcd";
char dest[100];
// 将t1.c_str()中的内容拷贝到dest中
// 拷贝的长度,是字符串长度(strlen(t1.c_str())) + 结束符长度1('\0')
memcpy(dest, t1.c_str(), strlen(t1.c_str()) + 1);
// 下面两种输出完全相同
cout << "t1 string:" << t1 << endl;
printf("t1 string:%s\n", t1.c_str()); //返回一个以'\0'终止的c字符串
// size与length完全相同, length是因为沿用C语言的习惯而保留下来的,string类最初只有length,引入STL之后,
// 为了兼容又加入了size,它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。
printf("t1.size = %lu\n", t1.size()); //返回当前字符串的大小
printf("t1.length = %lu\n", t1.length()); //返回当前字符串的长度
return 0;
}
下方分区,不包括代码段区
分类:
C/C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2019-10-25 ansible命令参数介绍