51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2164|回复: 0
打印 上一主题 下一主题

[原创] sizeof()与strlen()的区别之我见

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-12-26 12:20:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>
#include<string.h>
void main()
{
char a[]="hello";
char b[6];
printf("sizeof=%d,strlen=%d\n",sizeof(a),strlen(a));
printf("sizeof=%d,strlen=%d\n",sizeof(b),strlen(b));
}
输出:
sizeof=6,strlen=5
sizeof=6,strlen=13

sizeof(a)表示字符组a里元素所占用的字节大小
strlen(a)表示字符组a里的长度也就是有多少个元素strlen遇到'\0'才会退出
第一个数组说明:因为
----sizeof(a)表示字符组a里元素所占用的字节大小a里有6个元素每个元素占1个字节所以 第一
个答案是6。
----strlen(a)表示字符组a里的长度也就是有多少个元素strlen遇到'\0'才会退出。。也就是不
算上‘\0'所以结果是5。。。
第二个数组说明:
没有赋值,定义了数组空间的大小数组b的sizeof值为:6,而strlen的值为13?
我的理解数组b中没有赋值也就是没有遇到'\0',所以系统给了个默认的随机值。
如果那位有更好的答案请告诉我!谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-14 13:01 , Processed in 0.066974 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表