打印

strlen获取字符串长度,为什么碰到0x00就停止了呢

[复制链接]
2622|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaolong12|  楼主 | 2017-6-27 12:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
aozima| | 2017-6-27 13:31 | 只看该作者
要不然呢?

C语言入门书上面没讲字符串结束么?

使用特权

评论回复
板凳
yyj8902| | 2017-6-29 18:03 | 只看该作者
字符串的结束就是0x00,不停止就不对了

使用特权

评论回复
地板
16号哨兵| | 2017-6-29 18:19 | 只看该作者
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。

使用特权

评论回复
5
Boooooosh| | 2017-6-29 19:23 | 只看该作者
0x00在ASII码字符串中,代表着最后一位,没有意义,所以过滤掉了

使用特权

评论回复
6
单片机菜菜| | 2017-6-29 19:33 | 只看该作者
字符串的规定就是这样的,没有为什么。这样才是正常的,不然字符串就没结束了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

185

帖子

0

粉丝