|
|
1
1
答案完全取决于所讨论的语言。但C语言通常是一种很好的语言,可以看到幕后的事情是如何发生的。
幕后str[0]=='h'(有一个int值),str[1]=='e'。。。 字符只是一个可以包含256个值之一的数字。每个字符都有一个数值。
字符串的支持方式与C相同,但也有
字符串文字是静态存储的一部分,不能直接更改,除非您需要未定义的行为。
在C#: 字符串是不可变的。这意味着一旦创建了字符串,就不能直接更改它。当您执行+=时,将创建一个新字符串,您的字符串现在引用该新字符串。 |
|
|
2
1
2.
这是一个相当粗略的概述,但希望能给你大致的想法。 在某些语言/计算机中,char!=字节—例如,C#,其中字符串默认以Unicode格式存储,特别是字符串的长度也存储在内存中。C++通常使用空终止的字符串,它以另一种方式解决问题,尽管它意味着确定其长度为O(n)而不是O(1)。 |
|
|
3
0
它非常依赖于语言。但是,在大多数情况下,字符串是 immutable ,这样做将分配一个新字符串并释放旧字符串的内存。 |
|
|
4
0
我假设您的示例中有一个输入错误,并且只有一个变量叫做foo或myString,而不是两个变量?
|
|
Ben · 统计向量中的单词在字符串中出现的频率 1 年前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 1 年前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 1 年前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 1 年前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 1 年前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 1 年前 |