我花时间在高级语言上突然想到我不知道Char数组和字符串之间的区别.我认为它们是相同的但不确定.有区别吗?它只是一个带有抽象的Char数组吗?
Dra*_*mon 20
String 是一个抽象,但是是一系列字符.它没有说明实施.如果你想根据链接的字符列表创建一个String实现,那么没有什么能阻止你.
在诸如C之类的语言中,差别很小 - 只是ac字符串是连续地址处以空字符结尾的字符序列,通常通过指针访问.
在OOP语言中,String将是某些String类的对象.这可能会在内部将数据保存在字符数组中,但您不需要知道这一点.字符数组只能是一个简单的数组,但是如果实现者决定,String类可以在字符串上提供许多操作(子字符串,正则表达式等).
Ste*_*owe 11
字符数组只是一个字符数组
字符串是使用字符数组的数据结构
一些字符串表示使用空终止符(如C),其他字符串表示使用长度前缀
我曾经教过编程,这就是我用来解释这个特殊问题的方法.
首先,关注两者的共同点:char数组和字符串由一系列字符组成.例如,作为序列意味着字符是有序的并且它们可以被枚举.
现在,重点关注这两件事中的每一件事,以他们特定的不同方式,为这个共同点.
一个字符数组添加了任何阵列已知加入:索引和随机访问单个项目.
一个字符串,而另一方面,补充说,字符的序列被看作是与自己的属性一整个事情的事实.在一些实现中,实现这意味着改变字符的存储方式(例如,在C字符串中添加终止空值).
这种方法(看看共性,然后看事情如何与它们分开)已证明在各种情况下都很有用.
希望这可以帮助.