strlen(s)与sizeof(s)有什么区别?

sweetswing 2019-05-11 03:23:05
what is the output of this code?
char s[20]="Hello\0Hi";
printf("%d %d",strlen(s),sizeof(s));

A 5 9
B 7 20
C 5 20
D 8 20

正确答案 C

我的疑问是strlen(s)与sizeof(s)有什么区别?
答案C是怎么得到的?
...全文
592 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CaptainXue 2019-05-12
  • 打赏
  • 举报
回复
strlen是求字符串的长度,有多少个字符,sizeof是计算变量所占的字节数,可以看看我的博文,里面有更多基础知识
636f6c696e 2019-05-12
  • 打赏
  • 举报
回复
strlen是计算字符串长度的,\0为截止符 sizeof是计算变量空间的,声明多大返回多大
自信男孩 2019-05-11
  • 打赏
  • 举报
回复
strlen是求字符串的长度,计算长度时遇到'\0'停止计算;
sizeof是求某个变量占内存的大小,即数组的长度
ZhouJunjie100 2019-05-11
  • 打赏
  • 举报
回复
strlen()是<string.h>里的函数,原理是从字符串的第一个char字符开始计算直至遇到'\0',楼主可以查一下这个函数的源代码就会理解答案是5 而sizeof()是指实际占用的字节数,char s[20]="Hello\0Hi";定义了s是一个有20个存储单元的数组,而char类型占用1个字节,所以答案是20 综上,就选C了~
  • 打赏
  • 举报
回复
strlen()得到的是字符串的实际长度,sizeof()得到的是所占的字节数。
拥抱Linux 2019-05-11
  • 打赏
  • 举报
回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧