A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 865061682 中级黑马   /  2015-8-2 22:08  /  792 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用sizeof计算的字符串长度包括了\0
用strlen计算的字符串长度不包括\0

7 个回复

倒序浏览
2楼 请楼主继续讲啊
回复 使用道具 举报
70852 发表于 2015-8-2 22:12
2楼 请楼主继续讲啊

就是第一种方法计算的长度会比第二种方法少1
回复 使用道具 举报
虽然差不多,但是很不严谨;
sizeof反正是只把变量占用的所有字节算出来,
可不能用来计算字符串长度,除非是直接声明字符数组,但是一般字符串都是
char *这样声明的,这样调用sizeof只会返回一个指针变量占用的内存大小,一般是4
strlen才是计算字符串长度;
而且即使都是在字符数组基础上进行计算,也不一定是strlen值少1,
因为strlen遇到0就结束了,要是数组里并不是最后一位存了0的话,结果就差很多了
回复 使用道具 举报
楼上的写的很详细
回复 使用道具 举报
DUKEMAN 来自手机 中级黑马 2015-8-4 16:03:26
地板
wowthe1st 发表于 2015-8-3 22:54
虽然差不多,但是很不严谨;
sizeof反正是只把变量占用的所有字节算出来,
可不能用来计算字符串长度,除非 ...

补充的可以
回复 使用道具 举报
继续啊,亲,
回复 使用道具 举报
sizeof只是一个运算符,而strlen()确实函数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马