You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

strlen计算空终止数组长度时printf输出结果是否包含末尾'\0'?

问题验证结论

你的判断完全正确,这段代码最终输出结果就是5。

核心依据

  • C标准对strlen的行为有明确定义:该函数仅统计从传入的字符指针起始位置,到首个'\0'终止符之前的字符总数,'\0'本身不会被计入统计结果。
  • 字符串字面量"hello"在内存中实际存储的序列是h、e、l、l、o、'\0',总占用6字节的存储空间,但strlen遍历到'\0'就会停止计数,因此返回值为5。
  • 你使用%zu作为size_t类型的格式符也符合C语言规范,没有类型匹配问题。

常见易混点提醒

不要混淆strlen和sizeof的行为:如果是按数组形式定义char arr[] = "hello",sizeof(arr)的结果才是6,该运算统计的是整个数组的总存储空间大小,会包含末尾'\0'占用的1字节。

内容的提问来源于stack exchange,提问作者user786

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:18:02