确切地说,C没有字符串类型。C的字符类型实际上是字符数组。
所谓的C风格的字符串,实际上就是末尾元素为零的字符数组。
其他字符串风格取决于语言设计思想,比如Pascall语言的字符串类型。为了强化类型管理与简化实现。Pascall的字符串类型不要求字符串尾部有特殊字符表示字符串结束。而是采用了一种数据结构来管理字符串。在字符串头部分别有两个字段表示了该字符串的长度和引用计数。这样简单的指针赋值直接复制地址并增加引用计数即可。而且字符串长度也不用每次都要重新计算。
后来的C++、Java等语言都借鉴了这样的设计思想。
[
本帖最后由 东海一鱼 于 2009-11-7 22:42 编辑 ]