分享

字符串结束符

 ColonelLee 2011-06-20

6.1 字符串结束符

C语言对字符串做了最奇怪的事:在每个字符串的末端加上了一个零。字符串末端的零有几种名字。下面列出了一些:

Null零

二进制零

字符串结束符

ASCII零

\0

警告 你唯独不能把字符串末端的零叫做零(zero)。C程序员给字符串末端的零起了特殊的名字,这样你就知道在字符串末端用的既不是普通的数值零也不是字符'0'。只有null零出现在字符串末端。

C语言用字符串末端的零标识所有字符串的结束。当你输入文字My name is Julie时,不需要做什么特别的事情。C程序会自动加上null零。你永远看不到null零,但它确实存在。在内存中,只有当C程序遇到null零时才知道字符串结束了。

说明 查看附录C时,你会找到ASCII表(在第2章中讨论)。第1个条目就是null,它的ASCII数是0。往下找到ASCII 48,会看到一个0。ASCII 48是字符'0',而第1个ASCII值是null零。C语言把null零放在字符串的末端。即使字符串"I am 20"也以ASCII 0结束,它就在20的字符0后面。

线索 字符串结束符有时被称为\0(反斜杠零),这是因为可以把\0放在单引号中来表示null零。因此,'0'是字符零,而'\0'是字符串结束符。

图6-1展示了字符串"Crazy"在内存中是如何存储的。如你所见,尽管字符串只有5个字母,但它占用了6个字节(一个字节是一个存储单元)。作为字符串"Crazy"的一部分,null零也占用了一个字节。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多