C语言字符串结束符

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零也占用了一个字节。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值