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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大龄产妇 中级黑马   /  2014-6-21 15:47  /  1026 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能详细说下
strlen 与 sizeof 的区别?
以及相对应的应用场合?

4 个回复

倒序浏览
本帖最后由 曹雨 于 2014-6-21 16:25 编辑

比如一个数组,int a[10]="abcd",strlen(a)=4计算的是字符串长度,sizeof(a)=10计算的是开辟的内存空间,
比如一个指针,int *p="abcd".strlen(p)=4计算的是字符串长度.sizeof(a)=4,计算的是指针p占据的内存空间。
其他的楼主可以百度下- -
回复 使用道具 举报
strlen是用来计算字符串长度的。遇到\0结束,\0不被计算在内。。。
sizeof是计算字符数组中的字符个数
回复 使用道具 举报
sizeof是计算数据类型的占位大小,比如1个char占一位是8字节不同的操作系统不同的机器架构会不一样,一个int占4位,double占8位,通常使用在缓冲区设置大小等和内存有关的地方,比如10*sizeof(double)就是10个double数据类型大小的内存空间
strlen就是计算\0之前的字符个数
回复 使用道具 举报
一个是字符串,一个是内存字节
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马