我们用一段简单的 C++ 代码,画出它们在内存中的真实形态:
std::string a = "High Performance";
std::string b = a + " Log Server";
【 堆内存 (Heap) 】 【 栈内存 (Stack) / 寄存器 】
┌───────────────────────┐ ┌────────────────────────┐
│ "High Performance" │ ◄──────────┤ 变量名: a (左值 lvalue) │ (能取地址 &a)
└───────────────────────┘ └────────────────────────┘
┌───────────────────────┐ ┌────────────────────────┐
│ "High Performance │ ◄──────────┤ 临时变量 (纯右值 prvalue)│ (没名字, 没地址,
│ Log Server" │ └────────────────────────┘ 算完就扔)
└───────────────────────┘ │
▼ 拷贝赋值给
┌────────────────────────┐
│ 变量名: b (左值 lvalue) │ (能取地址 &b)
└────────────────────────┘