我想知道字符串和内存如何一起工作。
据我所知,我知道当创建一个字符串时,它会将一些字符数组 + '\0' 放入内存中。我也知道它们是一成不变的。那么,对于连接之类的事情,内存中会发生什么,允许您访问相同的字符串?
我不认为您连接的字符串或字符直接放在原始字符串的地址之后,因为这可能会重叠一些所需的内存。
在 C# 和其他语言中,您可以说:
string s = "Hello" ... s = s + '!'
这会创建一个新字符串吗?一个指向一个新位置并显示“Hello!”,而使原始位置永远不会被引用的位置?
或者字符串使用的默认字符缓冲区是否允许连接中存在一些空间?